{"id":390805,"date":"2026-10-28T17:35:02","date_gmt":"2026-10-28T17:35:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/linkrevive-ai\/"},"modified":"2026-10-28T17:34:45","modified_gmt":"2026-10-28T17:34:45","slug":"linkrevive-ai","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/linkrevive-ai\/","author":10165665,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"LinkRevive AI","header_author":"OpenSource Technologies (OST)","header_description":"Finds broken links across your whole site, including drafts and menus, without false alarms, and helps you fix them.","assets_banners_color":"0c2035","last_updated":"2026-10-28 17:34:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/ost.agency","rating":0,"author_block_rating":0,"active_installs":0,"downloads":71,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"opensourcetech","date":"2026-10-28 17:34:45","revision":3771246}},"upgrade_notice":{"1.0.3":"<p>Link checking now starts only when an administrator clicks &quot;Start checking links&quot;.<\/p>","1.0.2":"<p>AI suggestions now use WordPress&#039;s built-in AI connection (Settings \u2192 Connectors).<\/p>","1.0.1":"<p>Fixes from a pre-release review, including link removal on WordPress 6.5\u20136.x.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3771246,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3771246,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3771246,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3771246,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3771246,"resolution":"1","location":"assets","locale":"","width":1280,"height":1600},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3771246,"resolution":"2","location":"assets","locale":"","width":1280,"height":964},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3771246,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3771246,"resolution":"4","location":"assets","locale":"","width":1280,"height":1324},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3771246,"resolution":"5","location":"assets","locale":"","width":1280,"height":1600}},"screenshots":{"1":"The report: a plain-English summary, then every problem link with why it failed and where it appears.","2":"Fixing a link: choose where to change it, replace it or remove it \u2014 with a suggested fix and help from the Wayback Machine or AI.","3":"Bulk fixing with a preview of exactly what will happen.","4":"Status and readiness: progress, speed, time left and a readiness check.","5":"Settings: optional helpers (archived copies, AI suggestions), host-friendly mode and the weekly email. Outside services stay off until you switch them on, and each says exactly what it sends."}},"plugin_section":[],"plugin_tags":[905,14279,14280,726,186],"plugin_category":[55],"plugin_contributors":[84404],"plugin_business_model":[],"class_list":["post-390805","plugin","type-plugin","status-publish","hentry","plugin_tags-905","plugin_tags-broken-links","plugin_tags-link-checker","plugin_tags-redirects","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-opensourcetech","plugin_committers-opensourcetech"],"banners":{"banner":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/banner-772x250.png?rev=3771246","banner_2x":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/banner-1544x500.png?rev=3771246","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/icon-128x128.png?rev=3771246","icon_2x":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/icon-256x256.png?rev=3771246","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/screenshot-1.png?rev=3771246","caption":"The report: a plain-English summary, then every problem link with why it failed and where it appears."},{"src":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/screenshot-2.png?rev=3771246","caption":"Fixing a link: choose where to change it, replace it or remove it \u2014 with a suggested fix and help from the Wayback Machine or AI."},{"src":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/screenshot-3.png?rev=3771246","caption":"Bulk fixing with a preview of exactly what will happen."},{"src":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/screenshot-4.png?rev=3771246","caption":"Status and readiness: progress, speed, time left and a readiness check."},{"src":"https:\/\/ps.w.org\/linkrevive-ai\/assets\/screenshot-5.png?rev=3771246","caption":"Settings: optional helpers (archived copies, AI suggestions), host-friendly mode and the weekly email. Outside services stay off until you switch them on, and each says exactly what it sends."}],"raw_content":"<!--section=description-->\n<p>LinkRevive AI checks every link on your site in the background and tells you, in plain words, which ones are really broken and how to fix them. It is free, with no account, no limits and no upsell inside the plugin's features.<\/p>\n\n<h4>No false alarms<\/h4>\n\n<p>Many link checkers call a link \"broken\" because one website blocked an automated visit or was slow for a minute. LinkRevive AI only calls a link <strong>Broken<\/strong> after it fails again on a later check. Websites that block automated checks (bot protection, logins, rate limits) are shown as <strong>Unverified<\/strong> \u2014 never as broken without proof. It also catches \"page not found\" pages that pretend to work (soft 404s).<\/p>\n\n<h4>Finds links everywhere<\/h4>\n\n<ul>\n<li>Posts, pages and custom post types in every status: published, scheduled, private, drafts and pending<\/li>\n<li>Classic editor and blocks, including links kept in block settings (navigation, embeds, social links)<\/li>\n<li>Menus, widgets, block-theme templates, template parts and navigation menus<\/li>\n<li>Advanced Custom Fields (URL, link, rich text, repeaters and groups) and Elementor pages<\/li>\n<li>Links, images, embeds and files<\/li>\n<\/ul>\n\n<h4>Fix in one click, safely<\/h4>\n\n<ul>\n<li>Replace an address, or remove a link and keep its text \u2014 in one place or everywhere it appears<\/li>\n<li>Suggested fixes: links that moved permanently are updated to their confirmed new address; broken links to your own pages are matched to where the page moved<\/li>\n<li>Redirect a removed page of your site to a new one instead of editing every link (works with the Redirection plugin)<\/li>\n<li>Bulk fixing with a preview, and one-click undo for every change<\/li>\n<li>Every change is checked before it is kept: if anything but that one link would change, nothing is changed<\/li>\n<li>Saved as a revision, the \"last modified\" date stays the same, caches are cleared (WP Rocket, LiteSpeed, W3 Total Cache, WP Super Cache, Cloudflare and more)<\/li>\n<\/ul>\n\n<h4>Optional helpers (off until you switch them on)<\/h4>\n\n<ul>\n<li><strong>Wayback Machine:<\/strong> find an archived copy of a page that is gone<\/li>\n<li><strong>AI suggestions<\/strong> through WordPress's built-in AI connection (WordPress 7.0+, with the AI provider you set up under Settings \u2192 Connectors): suggests a replacement; every suggested address is checked before you see it<\/li>\n<\/ul>\n\n<h4>Never slows your site<\/h4>\n\n<p>Checking runs in small background steps, never while a page loads. The plugin measures your server and adjusts its speed, slows down at once when your site gets busy, recovers by itself if something goes wrong, and can be paused at any time. On hosts that limit link checkers it switches to a gentler host-friendly mode with a daily limit.<\/p>\n\n<h4>Reports<\/h4>\n\n<ul>\n<li>A plain-English summary: what to fix first, what can wait and why<\/li>\n<li>Filters, search and CSV export<\/li>\n<li>An optional weekly email<\/li>\n<li>A readiness check in Tools \u2192 Site Health<\/li>\n<\/ul>\n\n<p>LinkRevive AI is made by <a href=\"https:\/\/ost.agency\/\">OpenSource Technologies (OST)<\/a>, a WordPress and Drupal agency.<\/p>\n\n<h3>External services<\/h3>\n\n<p>LinkRevive AI talks to outside services only as described here. Optional services are off until an administrator switches them on (Tools \u2192 LinkRevive AI \u2192 Settings), and then only send anything when an administrator clicks their button on a broken link. No visitor data is ever sent.<\/p>\n\n<h4>The websites your links point to<\/h4>\n\n<p>To check a link, the plugin requests that link's address from your own server, as any visitor's browser would (with an honest User-Agent: \"LinkRevive-AI\/1.0; +https:\/\/wordpress.org\/plugins\/linkrevive-ai\/\"). Only the address itself is requested; nothing about your site or visitors is sent. This is the plugin's core purpose. It starts only after an administrator clicks \"Start checking links\" (Tools \u2192 LinkRevive AI), or runs <code>wp linkrevive start<\/code>; until then the plugin only reads your own content and contacts no other website. After that it runs in the background and can be paused at any time.<\/p>\n\n<h4>Internet Archive \u2014 Wayback Machine (optional, off by default)<\/h4>\n\n<p>Used to find an archived copy of a broken page. When an administrator clicks \"Find an archived copy\", only that broken link's address is sent to https:\/\/archive.org\/wayback\/available, without the part after \"?\" (only plain page numbers such as ?p=12 or ?lang=en are kept).\nTerms of use: https:\/\/archive.org\/about\/terms.php \u2014 Privacy: https:\/\/archive.org\/about\/terms.php<\/p>\n\n<h4>AI suggestions through WordPress's AI Client (optional, off by default)<\/h4>\n\n<p>Used to suggest a replacement for a broken link. The plugin does not contact any AI service itself and stores no AI keys: it uses WordPress's built-in AI Client (WordPress 7.0 or later), which sends the question to the AI provider the site owner has set up under Settings \u2192 Connectors. When an administrator clicks \"Ask AI\", the broken link's address (without the part after \"?\", except plain page numbers such as ?p=12), its link text, the title of the page it is on and up to 1,000 characters of the surrounding text are sent to that provider. The terms, privacy policy and charges of the provider the site owner chose apply. Every suggested address is checked by the plugin before it is shown; nothing on the site changes until the administrator chooses a suggestion and applies it.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin from Plugins \u2192 Add New.<\/li>\n<li>Go to Tools \u2192 LinkRevive AI. The plugin has started reading the links in your content (this stays on your server). Click \"Start checking links\" to let it check them; nothing is sent to any other website before you do.<\/li>\n<li>Links are then checked in the background. Progress and results appear on the same page.<\/li>\n<li>Optional: switch on the weekly email, the Wayback Machine or AI suggestions under Tools \u2192 LinkRevive AI \u2192 Settings.<\/li>\n<\/ol>\n\n<p>From the command line: <code>wp linkrevive start<\/code>, <code>wp linkrevive status<\/code>, <code>wp linkrevive check<\/code>, <code>wp linkrevive pause<\/code> \/ <code>resume<\/code>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20really%20free%3F\"><h3>Is it really free?<\/h3><\/dt>\n<dd><p>Yes. No account, no link limits, no paid tier. The plugin is made by OpenSource Technologies (OST), an agency; if you'd like help fixing your site, you can ask OST \u2014 that's the only \"offer\", shown once on the report and in the optional weekly email, and you can hide it.<\/p><\/dd>\n<dt id=\"what%20does%20%22unverified%22%20mean%3F\"><h3>What does \"Unverified\" mean?<\/h3><\/dt>\n<dd><p>The website didn't let us check (it blocks automated checks, needs a login, asked us to slow down, or was too slow). Such links usually work for visitors. They are tried again later and are never called broken without proof. A link that has not answered at all for two weeks is listed separately (\"No answer for 2+ weeks\") so you can open it yourself.<\/p><\/dd>\n<dt id=\"will%20it%20change%20my%20content%20without%20asking%3F\"><h3>Will it change my content without asking?<\/h3><\/dt>\n<dd><p>No. Nothing on your site changes until you choose a fix and click Apply. Every change can be undone for 30 days (the plugin keeps a copy of the changed text for that long, then deletes it).<\/p>\n\n<p>Fixes are saved directly, without opening the editor. If someone has the same page open in the editor at that moment and saves it afterwards, their save brings the old link back; the plugin notices on its next check and shows the link again.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site has its own links, settings and report.<\/p><\/dd>\n<dt id=\"my%20host%20limits%20link%20checkers%20%28e.g.%20godaddy%20managed%20wordpress%2C%20pressable%29.%20can%20i%20use%20it%3F\"><h3>My host limits link checkers (e.g. GoDaddy Managed WordPress, Pressable). Can I use it?<\/h3><\/dt>\n<dd><p>Yes. On these hosts LinkRevive AI automatically uses host-friendly mode: at most 2 links at a time and a daily number of requests spread over the day. You can change this under Settings.<\/p><\/dd>\n<dt id=\"why%20does%20the%20plugin%20use%20curl%20directly%20instead%20of%20the%20wordpress%20http%20api%3F\"><h3>Why does the plugin use curl directly instead of the WordPress HTTP API?<\/h3><\/dt>\n<dd><p>Link checking runs in our standalone PHP library (<code>ost\/linkrevive-core<\/code>, bundled in <code>vendor\/<\/code>), which is also used by our Drupal module. It uses PHP's curl extension directly for three reasons the WordPress HTTP API cannot cover:<\/p>\n\n<ol>\n<li><strong>Safety (SSRF protection).<\/strong> Links come from site content, so a link could point at your own server's private network or a cloud metadata address. We resolve every address, refuse private and reserved ones, and then <em>pin<\/em> the connection to the address we checked, on every redirect step, so DNS cannot be switched in between.<\/li>\n<li><strong>Stopping early.<\/strong> We only need the first 16 KB of a page and the status of a file. The library stops a download as soon as it has that; the WordPress HTTP API's size limit keeps downloading and discards the rest.<\/li>\n<li><strong>Speed without load spikes.<\/strong> A rolling queue starts the next link the moment one finishes, at most 2 requests per outside website. On real links this measured about 4 times faster than parallel batches through the WordPress HTTP API, so scans finish sooner and use the server for less time.<\/li>\n<\/ol>\n\n<p>If you prefer, the plugin uses the WordPress HTTP API instead (same results, slower). Add <code>define( 'LINKREVIVE_HTTP_ENGINE', 'wordpress' );<\/code> to <code>wp-config.php<\/code> or use the <code>linkrevive_http_engine<\/code> filter. Both need PHP's curl extension, because the checked server's address is pinned through a curl option; without curl, no links are checked and the plugin's readiness list says so.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>It is built not to. All work runs in short background steps (never while a page loads). The plugin measures your server once a week (memory, time limit, a short speed test, how fast your site answers) and picks a speed tier. It then speeds up slowly and slows down at once when it sees warning signs: high CPU use, memory pressure, slow database writes, many timeouts, or your site answering slower than usual. On budget hosting it runs at its starting speed during the day.<\/p>\n\n<p>If a background step ever crashes, the next one runs in Safe mode (one link at a time). A link that crashes a step on its own is set aside for 30 days and shown as \"Unverified\", never \"Broken\". After repeated crashes the plugin pauses itself and says why.<\/p><\/dd>\n<dt id=\"how%20do%20i%20stop%20it%20completely%3F\"><h3>How do I stop it completely?<\/h3><\/dt>\n<dd><p>Use the pause button, run <code>wp linkrevive pause<\/code>, or add <code>define( 'LINKREVIVE_PAUSED', true );<\/code> to <code>wp-config.php<\/code>. Nothing runs while paused. Edits made meanwhile are picked up when you resume.<\/p><\/dd>\n<dt id=\"can%20my%20host%20or%20developer%20lower%20the%20limits%3F\"><h3>Can my host or developer lower the limits?<\/h3><\/dt>\n<dd><p>Yes, with the <code>linkrevive_slice_plan<\/code> filter (e.g. fewer parallel requests or shorter steps). <code>wp linkrevive status<\/code> shows the tier, level and current speed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Changed: link checking starts only after an administrator clicks \"Start checking links\". Activating the plugin only reads your own content and contacts no other website.<\/li>\n<li>Changed: the plugin's styles and scripts load only on its own screen.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Changed: AI suggestions now use WordPress's built-in AI Client (WordPress 7.0+) and the AI provider you set up under Settings \u2192 Connectors. The plugin no longer calls AI services itself or stores AI keys.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed: removing a link could leave a stray \"&gt;\" behind on WordPress 6.5\u20136.x.<\/li>\n<li>Fixed: a user name or password written inside a link's address is never sent to the Wayback Machine or the AI provider.<\/li>\n<li>Fixed: on a multisite network, sites added later now get their first scan.<\/li>\n<li>Fixed: the undo history is cleared after 30 days even when no new fixes are made.<\/li>\n<li>Fixed: without PHP's curl extension, links are no longer checked at all (and the readiness list says so) instead of failing.<\/li>\n<li>Fixed: the report's filters and CSV button are visible on phones.<\/li>\n<li>Fixed: the two buttons on the settings page have their own names.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Finds broken links everywhere on your site without false alarms, suggests the right fix, and fixes links in one click \u2014 with undo.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/390805","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=390805"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/opensourcetech"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=390805"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=390805"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=390805"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=390805"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=390805"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=390805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}