seowatcher guide

Audit rules

The list of 95 rules the site audit checks. For each rule you find what it means and how to fix it.

The site audit checks every page, and the site as a whole, against 95 rules in three groups. Kritik (Critical, 10 rules): Google cannot see or understand the page, so fix these first. Uyarı (Warning, 48 rules): they slowly lower rankings and clicks. Bilgi (Info, 37 rules): small opportunities to improve. In the score, critical counts 40, warning 15 and info 3, and the number of pages a rule affects counts too.

The table gives the rule name shown on screen, what it means and the first step to fix it. The full fix text is on the finding card on screen. The last column is the rule ID, which shows up in the CSV file and in assistant answers.

Common terms

Critical

RuleWhat it meansHow to fixID
Crawler was blockedYour site's bot protection stopped the crawler. Google may be blocked too.In your firewall, allow the "seotracker-audit" user agent.blocked-page
Server error (5xx)The page returns a server error. Google removes such pages from search.Find the error for this address in the server logs and fix it.server-error
robots.txt file returns a server errorIf Google cannot read the file, it may stop crawling the site completely.Fix the error. Check that the robots.txt address opens normally.robots-txt-server-error
Start address is blocked by robots.txtThe address the crawl starts from is forbidden in robots.txt.If it should be crawled, delete the matching "Disallow" line.robots-txt-blocks-start-url
Page in the sitemap does not openA page you told Google exists returns an error.If the page should exist, fix the error. If not, remove it from the sitemap.sitemap-broken-page
A file the page needs is blocked by robots.txtGoogle cannot reach the design or code file it needs to display the page.Delete the rule in robots.txt that covers these files.blocked-resource
Insecure file on a secure pageA secure (https) page loads a file from an insecure (http) address. Browsers block this.Change the file's address so it starts with https.mixed-content-resource
A hidden page is named as the main addressThe page named as the main address is hidden from search. The two cancel each other out.Remove noindex from the target page, or make the main address the page's own address.canonical-to-noindex
Google treats the page as empty (soft 404)Google treats the page as "does not exist" and keeps it out of search.If the page really does not exist, return a 404 or 410 error code. If it exists, add real content.google-soft-404
Google cannot crawl the page because of robots.txtGoogle's answer: robots.txt blocks it.Find and delete the "Disallow" line in robots.txt that covers this address.google-blocked-by-robots

Warning

RuleWhat it meansHow to fixID
Hit the request limit (429)The site told the crawler "too many requests".Raise the request limit on the server, or exempt "seotracker-audit" from the limit.rate-limited-page
Crawl stopped early: request limitThe crawl stopped when the wait passed 30 minutes.Restart the audit once the site's request limit resets.crawl-rate-limited
Broken internal linkA link on your site goes to a page that does not open.Point the link to the right address, or delete it.broken-internal-link
Page returns an error when opened (4xx)The page returns an error such as "not found".If the page should exist, publish it again. If not, delete the links that go to it.broken-page
Redirect chainThe address redirects several times before it reaches the final page.Redirect the first address, and the links to it, straight to the final page.redirect-chain
Redirect loopThe address redirects to itself or in a circle.Follow the redirect rules and break the loop.redirect-loop
Page that no page links toThe page exists only in the sitemap. Google gives it little value.Link to it from the menu, from related posts or from a category page.orphan-page
robots.txt could not be reachedThe file did not respond at all.Open the robots.txt address in a browser and check that it responds.robots-txt-unreachable
robots.txt is over the 500 KB limitGoogle does not read the end of the file.Shorten the file.robots-txt-truncated
Page in the sitemap redirectsThe sitemap has an address that redirects to another address.Put the final address it redirects to in the sitemap.sitemap-redirect-page
Address in the sitemap is blocked by robots.txtThe sitemap says "come", robots.txt says "do not come".If it should show up in search, remove the block. If not, delete it from the sitemap.sitemap-disallowed-page
Sitemap file is too large to readThe file is over the 10 MB limit.Split the sitemap into parts.sitemap-too-large
Sitemap has more than 50,000 addressesGoogle accepts at most 50,000 addresses in one file.Split the file into parts under 50,000. Join the parts with one main sitemap file.sitemap-too-many-urls
Sitemap has a lastmod date in the futureThe date is later than today. Google stops trusting the dates.Check what generates the dates.sitemap-lastmod-future
Page opens over insecure httpThe page is not secure (https).Ask your hosting company to turn on the free SSL certificate.not-https
Title tag is missingThe page has no title tag (title).Add a title that describes the topic and is specific to the page. 50-60 characters is a good length.missing-title
Meta description is missingThe gray summary in the search result is missing.Write a description that summarizes the page and makes people click.missing-meta-description
Images without alt textNothing says what the images show.Write a short alt text for every image that carries meaning.images-missing-alt
More than one title tag on the pageThere are two title tags. Google picks one at random.Search the page source for "title" and keep only one.multiple-titles
More than one different meta description on the pageThere are two descriptions.Search the page source for name="description" and keep only one.multiple-meta-descriptions
Title tag is placeholder textThe title is something like "Home" or "Untitled".Write your own title that describes the topic of the page.placeholder-title
Duplicate titleSeveral pages use the same title.Give each page its own title that describes its own content.duplicate-title
Duplicate main heading (H1)Several pages have the same main heading.Write a different H1 for each page.duplicate-h1
Duplicate meta descriptionSeveral pages use the same description.Write each page its own description, or delete the repeated one.duplicate-meta-description
Duplicate page contentTwo pages carry the same text.Choose the main page. Link the other one to it with canonical.duplicate-content
Main address declarations contradict each otherThe HTML and the server response name different main addresses.Choose one main address and state it in one place only.canonical-conflict
Page named as the main address does not openThe page named as the main address returns an error.Change the main address to a working page, or publish the target again.canonical-to-broken
A page that redirects is named as the main addressThe main address is an address that redirects to another page.Make the main address the final page it redirects to.canonical-to-redirect
Google sees a hide tag (noindex) on the pageGoogle's answer: it saw noindex on the page.Compare the page source with what Google sees. A plugin or a template may be adding the tag.google-blocked-by-meta
Google chose a different main addressGoogle did not accept your main address.Look at the address Google chose. Either make it the main address, or make the two pages clearly different.google-chose-different-canonical
Language version code (hreflang) is invalidA code that does not exist was written, such as "en-UK".Write the right code. For the United Kingdom it is "en-GB".hreflang-invalid-code
Page does not list itself among the language versions (hreflang)The page lists the other languages but not itself.Add the page's own address, with its own language code, to the list.hreflang-missing-self
Page turns off its links with a robots directiveThe page has turned off following its links (nofollow).If you want its links to be followed, delete the "nofollow" text.nofollow-page
Paginated page points to the first page as its main addressPage 2 names page 1 as its main address. Google ignores page 2.Make each page's main address its own address.paginated-canonical-to-first-page
Language versions do not link back to each other (hreflang)Page A points to B but B does not point to A.Add a hreflang line to page B that points to A.hreflang-no-return-tag
Language version points to a page that does not open or is removed from the indexThe language version it points to returns an error or is hidden from search.Look at the address in the details. Fix it or take it off the list.hreflang-target-broken
Main address (canonical) points to another domain or to httpThe main address points to another site or to an insecure (http) address.Unless you did it on purpose, make the main address the page's own https address.canonical-cross-host-or-http
Structured data block is brokenThe structured data block (JSON-LD) cannot be read.Paste the block into a JSON checker. Usually there is an extra comma.structured-data-invalid-json
Google crawled it but did not index itGoogle's answer: it did not find the content good enough.In Google's "URL Inspection Tool", check for noindex, blocked files or content that looks empty.google-crawled-not-indexed
Google found it but has not crawled it yetGoogle knows the address and has put it in the queue.Waiting is usually enough. Link to it from pages that are crawled often.google-discovered-not-indexed
Google saw duplicate content and no main address is setGoogle found a copy of the page and you did not set a main address.Add a canonical that points to the main address on every page in the group of copies.google-duplicate-no-canonical
Google does not know this address at allThe address has never reached Google.Add it to the sitemap and submit the sitemap to Search Console.google-url-unknown
Google found an error in the structured dataA field is missing in the markup written for a rich result.Open the address in Google's Rich Results Test. It shows the missing field there.google-rich-results-invalid
Page declares main addresses that contradict each otherThe page has more than one canonical tag.Decide which one is right. Turn off the plugin that produces the other.multiple-canonical-tags
Main content of the page loads late (LCP)The largest element arrives later than 4 seconds.Look at the largest element in the PageSpeed report. It is usually an image. Make it smaller and convert it to WebP.cwv-lcp-poor
Content shifts while the page loads (CLS)The shift score is greater than 0.25.Give images and embedded boxes a width and a height.cwv-cls-poor
Page responds slowly to clicks (INP)The response to a click takes longer than 500 milliseconds.Find the scripts that slow the page most. Delay them or remove them.cwv-inp-poor
Google's SEO audit score is lowThe Lighthouse SEO score is below 90.Open the page in PageSpeed Insights. Look at the failed checks in the SEO section.lighthouse-seo-low

Info

RuleWhat it meansHow to fixID
Server response is slowThe server's first answer comes late.Look at server and database time. Turn on caching (keeping ready copies).slow-response
Page in the sitemap points to another page as its main addressThe sitemap has an address that is a copy.Keep only main addresses in the sitemap.sitemap-canonicalized-page
Page in the sitemap is hidden from search resultsThe sitemap has a page that is hidden from search.If it should show up in search, remove noindex. If not, delete it from the sitemap.sitemap-noindex-page
Page is too deep in the site structureThe page is many clicks away from the home page.Shorten the path with links from categories, menus or featured lists.deep-page
Sitemap has no lastmod dates at allGoogle does not know the last change date.In the setting that generates the sitemap, turn on lastmod for every address.sitemap-lastmod-missing
Internal link goes to a redirectThe link goes to an old address and redirects from there.Replace the link with the new address it redirects to.internal-link-to-redirect
Character encoding is not declaredTurkish characters may break in some browsers.Add the line meta charset="utf-8" at the start of the head section.missing-charset
Page address is too longThe address is long and hard to read.Keep the address short and meaningful.url-too-long
Address has capital letters or underscoresTwo separate spellings of the same page can appear.Write addresses in lowercase with hyphens.url-uppercase-or-underscore
H1 heading is missingThe page has no main heading.Add a single H1 that describes the topic.missing-h1
More than one H1 headingThere is more than one main heading.Keep a single H1. Make the others H2 or H3.multiple-h1
Page has almost no textThe crawler found no text. The text may be loading later with JavaScript.Check in the page source whether the text shows up.thin-content
Page has no links to anywhere elseA dead-end page: it goes nowhere else.Add links to related pages, to the parent category or to the home page.no-outgoing-links
Title is too longGoogle cuts off anything after 60 characters.Shorten the title to 50-60 characters. Put the important words first.title-too-long
Title is too shortThe title does not describe the page.Write a title of 30-60 characters that says what you offer.title-too-short
Meta description is too longGoogle cuts off anything after 160 characters.Put the main message first and shorten it to 70-160 characters.meta-description-too-long
Meta description is too shortThe description gives no reason to click.Write 70-160 characters that summarize the page.meta-description-too-short
Heading levels are skippedIt jumps from H1 straight to H3.Use headings in order: H1, H2, H3.heading-order-skip
Mobile view tag (viewport) is missingThe page looks tiny on a phone.Add the viewport line to the head section.missing-viewport
Page language is not declaredIt does not say what language the page is in (no lang on the html tag).For a Turkish page, write html lang="tr".missing-lang
Images have no width and heightContent jumps while the page loads.Write the real size of the image on every img tag.images-missing-dimensions
Long text has no subheadingsThe long post is one single block.Split the text by topic. Give each section an H2 heading.no-subheadings
Image alt text is a file nameThe alt text is something like "IMG_1234.jpg".In the alt text, write what is in the image.alt-is-filename
Image alt text is too longThe alt text is as long as a paragraph.Describe the image in one sentence. About 125 characters is enough.alt-too-long
Main heading (H1) is too longThe H1 is as long as a paragraph.Cut the H1 down to a short, one-sentence heading.h1-too-long
Internal links without textThe link has no text or only an icon.Add visible text or an aria-label (a name hidden for screen readers).empty-anchor-text
Meaningless link texts such as "click here"The link text does not say where it goes.Replace the link text with the topic of the target page.generic-anchor-text
Too many links on the pageThe page has hundreds of links.Limit the menu and the footer to the most important pages.too-many-links
Nofollow links to your own site's pagesA link to your own pages has nofollow.Delete rel="nofollow" from these links.internal-nofollow-links
Page has no canonical (main address) tagGoogle guesses the main address.Add a canonical line to the head section that points to the page's own full address.missing-canonical
Page is hidden from search results (noindex)The page is hidden from search, on purpose or by mistake.If it should show up in search, remove noindex.noindex-page
Page points to another page as its main addressThe page declares itself a copy.If it should show up in search under its own name, make the main address its own address.canonicalized-page
Language versions have no default version (x-default)There is no default version for visitors whose language does not match.Add an x-default line to the hreflang list.hreflang-missing-x-default
Google's answer about some pages is out of dateStored Google answers are older than 3 or 14 days.On the Index status tab, press the "Check status on Google" button.stale-google-verdicts
Site has no social media sharing tags (Open Graph)No image or title appears when it is shared.In the template's head section, add og:title, og:description and an og:image of 1200x630 pixels.open-graph-missing-site
Site has no structured data at allA rich result cannot appear in search.Start with markup that fits the page type (such as Organization, Product or Article).structured-data-missing-site
Google has not crawled this page for a long timeGoogle's last visit is older than 90 days.Link to it from pages that are crawled often. Make sure the page is in the sitemap.google-crawl-stale

How do the rules work?

Most rules run per page and list every page they affect. Some concern the whole site and produce a single finding. These are the robots.txt rules, the sitemap rules, "Site has no social media sharing tags" and "Site has no structured data at all".

Rules whose name starts with "Google" do not come from the app's crawl. They are produced from the answers taken from Google on the Index status tab. If you have never asked a question on that tab, these rules never run. The speed rules (LCP, CLS, INP, SEO score) run only when "Also measure page speed" is on, and they use the phone measurement.

Last updated: October 24, 2026. Spotted a mistake? Report it on GitHub.