WordPress SEO
What WordPress tells a search engine, where that goes wrong, and how to check each part. Start with whether your pages can be found at all, then the sitemap, then the addresses.
- By
- WP Ministry
- Published
Most of what decides whether a WordPress site can appear in search is a handful of settings and files, and each of them can be checked in a minute. This subject is about those: what WordPress itself tells a search engine, with and without a plugin, and what to do when a report says something is wrong.
Nothing here promises a ranking. Nobody can. What can be done is to make sure a search engine is able to reach your pages, read them and understand which address each one lives at. After that it is your pages against everyone else's.
The site is not on Google at all. Work through the checks, in order. The most common cause on a new or rebuilt site is one ticked box: see what "Discourage search engines from indexing this site" does.
You are not sure what WordPress already does. Quite a lot, with no plugin installed: WordPress SEO without a plugin lists it and shows each part.
Something is wrong with the sitemap or with robots.txt. WordPress makes both by itself. See the sitemap at wp-sitemap.xml and where robots.txt is and how to change it.
Pages you never wrote are in Google. A page for every uploaded image is one kind: see attachment pages. Pages someone else added are another, and that is a break-in: see spam pages in Google.
You are changing addresses. Read how to change permalinks safely before you save the new structure, and how to set up redirects for the addresses WordPress will not forward by itself. Moving the whole site is its own job: migrate without losing search traffic.
Error fixes
- "Alternate page with proper canonical tag" in Search Console: what it means on a WordPress site"Alternate page with proper canonical tag" is not an error. The address listed is a copy of another page, it says so with a canonical link, and Google agreed and indexed the other page. Google's help says there is nothing you need to do. Look closer only if a page you want found is on the list.
- "Blocked by robots.txt" in Search Console: when it is fine, and how to find the rule on WordPress"Blocked by robots.txt" means Google did not fetch the address because your robots.txt told it not to. For /wp-admin/ and a store's add-to-cart addresses that is intended. If the address is a page you want found, a rule is catching more than it was written for: find the line and change it.
- "Blocked due to other 4xx issue" in Search Console: what it means on WordPress and what to doGoogle asked for the address and got a status code in the 400s other than 401, 403 or 404. On WordPress's own files, such as admin-ajax.php and xmlrpc.php, that is normal and needs nothing. For a real page, find the code, then what sent it, which is often a rule or a firewall.
- "Crawled - currently not indexed" on a WordPress site: what to leave and what to check"Crawled - currently not indexed" means Google fetched the address and chose not to index it. If the addresses listed are feeds and archives WordPress makes by itself, that is the right outcome and nothing needs doing. For a page you wrote, it is Google's judgment, and no setting reverses it.
- "Not found (404)" in Search Console: which addresses to fix on a WordPress site, and which to leave"Not found (404)" lists addresses that answered 404 when Google asked for them. Most never were pages or were removed on purpose, and Google's help says such 404s do no harm. Only two kinds need work: a page that moved, which needs a redirect, and a page that should exist.
- "Page with redirect" in Search Console: what it means on a WordPress site, and which ones to fix"Page with redirect" lists addresses that answered Google with a redirect. The address is not indexed. The page it leads to can be. On a WordPress site the list is usually old and alternative addresses that WordPress forwards by itself, and they need nothing. A few can be wrong.
Guides
- Bing Webmaster Tools for WordPress: setup, IndexNow, and what it means for ChatGPT and CopilotMicrosoft documents that Copilot rests on Bing's index. OpenAI documents its own crawler and does not say a site must be in Bing. Bing Webmaster Tools is free, a WordPress site is verified with one tag or one file, and its AI report shows phrases that Google's does not.
- Business not showing on Google Maps: what to check, in orderSearch Google Maps for the business's exact name and town. If it is missing, the cause is one of a short list that Google's help names: no Business Profile, an unverified one, a suspension, another owner, a duplicate, or a business its guidelines do not cover.
- Generative engine optimization (GEO): what is documented, what was studied and what is guessworkGenerative engine optimization (GEO, also sold as AEO or AI SEO) is the work of getting a site quoted in AI answers. What the engines document is short. Let their search crawlers in, keep pages indexable, put answers in visible text. The rest is a study or guesswork.
- Google Business Profile suspended: what it means, why it happens and how to appealA suspended or disabled Business Profile is one Google has taken down for not following its guidelines. The public cannot open it and its owner cannot act on it. Check it against the guidelines, gather documents, then appeal once in Google's appeals tool from the account that manages it.
- How long a new WordPress site takes to show up on Google, and what to do on day oneGoogle's help says crawling and indexing a new page takes from a day or two to a few weeks, typically, and to allow at least a week after you submit a sitemap or ask for indexing. Nothing shortens that. Day one is for making sure the wait is only a wait.
- How long does SEO take? The times Google states, and the ones it does notNo single number answers it, and nobody who gives one is quoting Google. Google's page on hiring an SEO once said four months to a year and no longer does. What Google states today is how long crawling, indexing and a site move take, each as a range.
- How to add local business schema to WordPress without a pluginSave one PHP file in wp-content/mu-plugins and WordPress prints a LocalBusiness block, as JSON-LD, on the page that shows your business details. Google requires a name and an address and recommends hours, a phone number, a URL, coordinates and a price range.
- How to appear in Google AI Overviews: what Google requires and what keeps a WordPress page outGoogle says a page needs nothing extra to appear in AI Overviews or AI Mode. It has to be indexed and allowed a snippet. On WordPress the work is checking that nothing takes a page out, such as a noindex, a snippet rule or the Search generative AI control in Search Console.
- How to block AI crawlers on WordPress, or let them in: robots.txt, Cloudflare, hosts and pluginsAI companies send different crawlers for training, for search and for fetching a page someone asked about. A WordPress site can refuse one kind and admit the others in robots.txt. A CDN, a host or a plugin can also block them where robots.txt does not show it.
- How to change WordPress permalinks without breaking your old linksWordPress keeps no record of a permalink structure you leave. After a change, some old post addresses are forwarded by a guess and the rest answer 404. A move from a dated structure to Post name answers 404. Add one 301 rule for the old pattern, then check an old address.
- How to request ownership of a Google Business Profile that someone else controlsAsk whoever holds the profile to add you as an owner and make you primary owner. If they cannot or will not, use Google's Request Access form at business.google.com/add. The current owner gets 3 days to answer, and after that Google may let you claim and verify the profile yourself.
- How to stop AI training on your WordPress content and stay in AI search answersYou can ask the crawlers that collect for AI training to stay out, one company at a time, and stay in most assistants' search answers. The request is a robots.txt group or, at Microsoft and Amazon, a noarchive tag. It is not a lock, and it does not take back what was already collected.
- llms.txt on WordPress: what it is, who reads it and whether your site needs onellms.txt is a proposed markdown file at /llms.txt that lists a site's main pages for AI agents. It is not a standard. Google says Search ignores it, and no AI company's crawler page says its crawler reads yours. An SEO plugin may already have made one, so check first.
- Location pages for multiple cities in WordPress: where Google's spam policy puts the limitA real branch deserves a page of its own. A page for each town that differs only in the town's name is what Google's spam policies describe as doorway abuse. In WordPress, make each branch a child page of one Locations page, and compare any two pages with the place names removed.
- Mismatched value (page crawl) for price in Merchant Center: finding the cause on a WooCommerce storeGoogle compares the price in your product data with the price in the HTML of the product's landing page and in its structured data, and can disapprove the item when they differ. On a WooCommerce store the usual causes are a variation's address, a sale that ended, tax, currency and a cached page.
- Missing field "brand" and "No global identifier provided" in WooCommerce: what they mean, how to fix themBoth notices name properties Google lists as recommended for a merchant listing, not required, so the product stays valid. WooCommerce prints gtin from its "GTIN, UPC, EAN, or ISBN" field and brand from the brand assigned to the product. Fill both in. Where a product has no GTIN, leave it empty.
- Missing field "hasMerchantReturnPolicy" and "shippingDetails" in WooCommerce: what they mean and three fixesBoth are recommended properties of a merchant listing, not required ones, so the product stays valid. WooCommerce prints neither. Settle them with shipping and return settings in Search Console or Merchant Center, with markup added through a WooCommerce filter, or with an extension.
- NAP consistency: what Google says about name, address and phone, and one place to keep them in WordPressGoogle asks for a business's real-world name, an accurate address and a phone number the business controls. Its guidelines and its local ranking page say nothing about directory listings having to match. On your own WordPress site, keep the three in one place so no copy goes stale.
- Questions to ask an SEO company before you hire one, and what a good answer sounds likeAsk an SEO company what it will do, in writing, what access it needs, what it promises, where links and reviews come from and what you keep when you leave. Google's own advice to buyers is the spine. Nobody can promise a ranking, and an audit needs only read access to Search Console.
- Review stars not showing in Google for a local business: Google's rule, and what to do insteadGoogle does not show review stars for a rating of a business that sits on the business's own website, in its markup or in an embedded reviews widget. It has said so since September 16, 2019. A local business's stars appear on its Business Profile, from reviews people leave on Google.
- Service area business SEO: Google's rules for the profile, and a website with no address to showA business that travels to its customers gets one Google Business Profile, with its address hidden and up to 20 service areas. Its website needs no street address. It should say who you are, what you do, the area you cover, your phone number and the hours you answer.
- Staging site indexed by Google: how to remove it and keep the next copy outPut a password on the staging site, or a noindex that Google is allowed to read, then ask for removal in Search Console's Removals tool, which lasts about six months. Do not rely on Disallow in robots.txt. Google says not to, and it stops a noindex from being read.
- Traffic dropped after a website redesign: what to check on a WordPress site, in orderA redesign cuts search traffic in four ways. The new site is closed to search engines, old addresses answer 404, old addresses redirect to the wrong page, or the pages that brought visitors are gone. Three can be read off the site in minutes. The fourth takes Search Console.
- What "Discourage search engines from indexing this site" does in WordPress, and how to turn it offThe box under Settings, then Reading, puts a noindex, nofollow robots tag on every page and switches off the sitemap at /wp-sitemap.xml. It writes nothing into robots.txt. Untick it and save, or run wp option update blog_public 1, then read a page's source to confirm the tag is gone.
- WooCommerce category page SEO: what a product category tells Google, its pagination and its addressWith no SEO plugin, a WooCommerce category page prints its name as title and heading, your description and a breadcrumb trail, and no canonical link or meta description. Its pagination is set out as Google asks. What it lacks is words for the shopper and links from the rest of the store.
- WooCommerce coming soon mode: how to check it, launch your store, and what Google is sent meanwhileComing soon mode shows a placeholder in place of a WooCommerce store, or the whole site, to everyone except a signed-in administrator or shop manager. A new store starts in it. To launch, choose Live under WooCommerce, Settings, Site visibility, or run wp option update woocommerce_coming_soon no.
- WooCommerce filter URLs indexed in Google: ?orderby, ?filter_ and add-to-cart addresses, and what to doA WooCommerce store answers at extra addresses for one list of products, such as ?orderby=, ?filter_, ?min_price=, /page/2/ and ?add-to-cart=. Each returns the page with no canonical link and no noindex. A small store can leave them. To stop the crawling, add robots.txt rules for the parameters.
- WooCommerce out of stock and discontinued products and SEO: leave, hide, delete or redirectAn out-of-stock WooCommerce product keeps its page. The address still answers 200 and its structured data changes to OutOfStock, so a product that is coming back needs nothing done. One that is gone for good is redirected to a true replacement or left to answer 404, never sent to the home page.
- WooCommerce products not showing on Google: what to check, in orderFirst settle where the products are missing. Ordinary results need a product page Google can index, rich product results need product data on that page, and the Shopping tab needs the product in a Merchant Center account. Then check the store in that order.
- WooCommerce variations and SEO: variation URLs, canonical links and the price in structured dataA WooCommerce variable product has one address. Each variation is that address with attribute parameters added, and it carries a canonical link back to the product, so it is not a duplicate to fix. The product's markup gives a price range. A variation's address gives that variation's price.
- WordPress attachment pages indexed in Google: why they exist and how to switch them offWordPress gives every uploaded file a page of its own, and Google can list those thin pages. Since WordPress 6.4 one option, wp_attachment_pages_enabled, turns them into redirects to the file. A new site has them off. A site upgraded from an older version still has them on.
- WordPress coming soon page and SEO: what Google is given, and what to answer while a site is closedA coming soon page that answers 200 is an ordinary page, and Google may index it as the site. For a live site closed for a day or two, Google says to answer 503. WordPress's own maintenance mode does, with Retry-After set to 600. One curl command shows what yours answers.
- WordPress robots.txt: where it is, what it says by default and how to edit itA fresh WordPress has no robots.txt file. WordPress answers the address itself, with three lines about /wp-admin/ and a Sitemap line. Change it with a real file in the site's root, which replaces that answer, or with the robots_txt filter, which adds to it.
- WordPress search results pages (/?s=) in Google and Search Console: what they are and what to doAn address with ?s= or /search/ in it is your site's own search page, asked for with someone else's words. WordPress puts noindex on every search page, so Google reads it and leaves it out. Check that your site prints the tag. Nothing was added to the site.
- WordPress SEO without a plugin: what WordPress already does and what it leaves outWith no SEO plugin, WordPress still prints a title, a robots tag and a canonical link, serves a sitemap and a robots.txt, and redirects duplicate addresses. It prints no meta description, no sharing tags and no structured data. Google's documentation calls none of those three required.
- WordPress site not showing up on Google: what to check, in orderSearch Google for site:yourdomain.com first. If nothing comes back, the site is either new or keeping Google out, through the "Discourage search engines" box, another noindex, a robots.txt rule, or a home page that does not answer with a 200. Check them in that order.
- wp-sitemap.xml: the sitemap WordPress makes, why it answers 404, and which one to submitWordPress has made its own sitemap at /wp-sitemap.xml since version 5.5. It answers 404 while search engines are discouraged or a filter has switched it off, and it redirects when an SEO plugin has replaced it. Submit one sitemap, the one on the Sitemap line of your robots.txt.
- www vs non-www for a WordPress site: which to choose, and how to make every other form redirect to itGoogle's documentation prefers https over http and states no preference between www and the bare domain. It says to pick one address and redirect the others. WordPress redirects www against non-www for its own pages and nothing more. The rest is a rule on the server.
What it costs
Runbooks and checklists
- Local SEO checklist for a WordPress site: the profile, the website, and what to leave outA local SEO checklist for a business with a WordPress site. Every item is something Google or WordPress documents, with how to check it, from the Business Profile to the site's details, indexing, markup, location pages and reviews. The last section lists what it leaves out, and why.
- Website redesign SEO checklist: what to record, map and check on a rebuilt siteA redesign loses search traffic when addresses change without redirects, when pages that brought visitors are dropped or thinned, or when the new site goes live closed to search engines. This checklist covers each, in order, for a rebuild on the same domain.
- WordPress SEO audit checklist: what to check, in order, and how to check each itemA technical SEO audit of a WordPress site as a checklist, in the order that finds the costly faults first. Can Google reach the site, does each page have one address, what is in the sitemap, what should stay out, what each page says, and what Search Console reports.
Tools
- Can this page be indexed? A check from outsideGive a page's address and see what could keep it out of a search engine: the status it answers with, a rule in robots.txt, a noindex on the page or in its headers, and the address it names as its own.
- Sitemap checker for WordPress sitesGive your site's address and see which sitemap it has, whether robots.txt points to it, whether what answers there is a sitemap at all, and how many addresses it lists.
- Are AI crawlers allowed on my site? A robots.txt checkGive your site's address and see what its robots.txt tells each AI crawler by name: the ones behind ChatGPT's, Claude's and Perplexity's search, the fetches made for their users, and the ones that collect pages for training.
- robots.txt tester: does this rule block this address?Paste a robots.txt, give an address and choose a crawler, and see whether it is allowed and which line decides. Worked out in your browser; nothing is sent.
- robots.txt generator for WordPressBuild a robots.txt that starts from WordPress's own rules, names your sitemap, and keeps out the kinds of AI crawler you choose. Made in your browser; nothing is sent.
- What is my product page telling Google? A product data checkGive a product page's address and see the product data it carries for search engines, set beside what Google requires for a merchant listing and what it only recommends: name, image, price, stock, brand and identifiers.
- LocalBusiness schema generator for WordPressFill in a business's name, address, phone and hours and get its LocalBusiness structured data, as a small WordPress plugin file or as the block alone, with the properties Google documents. Made in your browser; nothing is sent.

