/ ← Spam Policy Audit Fixes / Spam Audit Example
In this guide
  1. About this example
  2. The report at a glance
  3. Sign 1: link spam from a paid box
  4. Sign 2: doorway pages for each town
  5. Sign 3: a block of place names
  6. Sign 4: ratings the pages do not show
  7. The quieter results
  8. Reading this report, step by step
  9. What a good outcome looks like
  10. Questions and answers

About this example

⚠️ Illustrative example only. Brookfield Garden Rooms is fictional and example.co.uk is a placeholder address. The findings, page addresses and counts below were made up to demonstrate the report; they are not taken from any real audit or from the published study.

Brookfield is the sort of business the audit is built for: a small firm with a WordPress site put together by a freelance designer some years ago, updated now and then by the owner. The site has service pages, a gallery, a quote form, a blog with buying advice, a testimonials page and a set of “garden rooms in [town]” pages that a previous marketing agency added.

How the run was set up

The owner signed in and used Advanced controls with these choices:

SettingChoice in this exampleWhy
How many URLs to checkUp to 50 URLsThe sitemap lists a little over 40 pages, so 50 covers the lot.
Which URLsThe whole site (from your sitemaps)A first full audit, so nothing is excluded.
Pages opened in a real browserUp to 25 pagesSeveral pages rely on scripts from plugins.
Which policiesAllNothing is known yet, so every policy is reported.

The free, signed-out version would have checked the first 20 URLs only, and opened fewer pages in Chrome, which on this site would have missed most of the blog and several town pages.

The report at a glance

The report lists policies with signs first. Here is how Brookfield’s came out, summarised in one table so the shape of the result is clear before going into detail.

PolicyStatus in the exampleIn one line
Link spamSigns foundA paid “featured supplier” box links out without rel="sponsored".
Doorway abuseSigns foundNine town pages, including the Belper page, differ only by the town name.
Keyword stuffingSigns foundA long block of village names on the main service page.
Spammy structured dataSigns foundA star rating in the markup of pages that show no reviews.
Spam score (DataForSEO)InformationThird-party scores for the site and the sites it links to.
CloakingNo signs foundNone of the patterns appeared; a few Googlebot copies were bot-check pages and were not compared.
Sneaky redirects, hidden text and link abuse, hacked content, malicious practicesNo signs foundNone of the patterns appeared.
User-generated spam, thin affiliation, scaled content abuse, site reputation, misleading functionality, scraping, scam and fraudNo signs foundNone of the patterns appeared.
Expired domain abuseNo signs foundNo archived copy from before the current registration, so there is no earlier site to compare.
Machine-generated traffic, legal removals, personal information removals, policy circumventionNot checked automaticallyCannot be seen from a website; review by hand.

The pattern is typical of an honest small site: no sign of tampering, and a handful of problems created by well-meant marketing decisions. None of the four signs suggests anyone is attacking the site, which is why the owner can work through them calmly rather than treating the report as an emergency.

Sign 2: doorway pages for each town

The doorway evidence names a group of pages built from one pattern. In Brookfield’s case the previous agency created a page for each nearby town, each titled “Garden Rooms in [Town] | Brookfield Garden Rooms”, with the same text and photos and only the town name swapped.

URLWhat was found
/garden-rooms-ashby/Nearly the same as /garden-rooms-belper/; title differs by one word
/garden-rooms-ripley/Nearly the same as /garden-rooms-belper/; title differs by one word
/garden-rooms-matlock/Nearly the same as /garden-rooms-belper/; title differs by one word
…and five more town pages in the same group

What it means and what to do

Brookfield has one workshop and no branches, so these pages cannot honestly be made local in the sense of an address or opening hours. What the firm does have is completed projects in several of those towns. A sensible plan:

A rewrite of this size takes longer than the other fixes, so it goes last on the job list.

Sign 3: a block of place names

On the main “Garden rooms” service page, below the description of the work, sits a paragraph that starts “We install garden rooms in” and then lists dozens of villages and towns separated by commas. The keyword stuffing evidence quotes the start of that list and names the URL, in the visitor copy.

Lists like this are one of the examples Google gives of keyword stuffing. Customers do not read them, and they make the page look as though it was written for search engines. The audit set aside the site’s navigation and footer before looking, so the sign is about the paragraph in the main content, not the menu.

What to do

Replace the list with a sentence a person would actually write, for example: “We are based near Belper and build garden rooms across Derbyshire and the edges of Nottinghamshire and Leicestershire. If you are unsure whether we cover your area, send us your postcode.” A simple coverage map does the same job visually. Pair this with the new “Where we work” page from the doorway fix so the information has one proper home.

💡 In a report like this, signs often cluster. The town pages and the village list were both written to catch “garden rooms in [place]” searches, so fixing them together, with one clear approach to local coverage, is quicker than treating them separately.

Sign 4: ratings the pages do not show

The spammy structured data evidence lists pages whose markup includes an aggregateRating although nothing on the page shows a rating or reviews. On Brookfield’s site, a reviews plugin had been set to add the rating to the business’s markup on every page, while the reviews themselves only appear on /testimonials/.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "HomeAndConstructionBusiness",
  "name": "Brookfield Garden Rooms",
  "url": "https://example.co.uk/",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9",
    "reviewCount": "37"
  }
}
</script>

That block, appearing on the home, gallery and blog pages, is what the evidence points at.

What it means and what to do

Google’s structured data guidelines say markup should describe what the page shows. The reviews here are real, so nothing is being invented, but they are not visible where the markup claims them. Google also does not show review stars for reviews a business hosts about itself in this kind of markup, so the rating was earning nothing in search anyway. The owner should switch off the plugin’s site-wide rating option and, if wanted, keep review markup only on the testimonials page where customers can read the reviews. The Rich Results Test can confirm what each page now outputs.

The quieter results

It is tempting to skip everything below the signs. These results still tell the owner useful things.

Information: spam score

Because the run was signed in, the report includes a spam score from DataForSEO for example.co.uk and for the sites it links to, listing the highest-scoring linked sites with the page that links to each. It is DataForSEO’s own measure and not a Google figure, so it is information only. In the example, the decking supplier and the rest of the linked sites look unremarkable, and there is nothing to act on.

No signs found, with a note

Cloaking shows no signs. In the example, a few URLs received a bot-check page from the site’s CDN when requested as Googlebot, so those copies were not compared. That is the security service doing its job with an unverified crawler, not a fault. If the owner wants certainty about those pages, Search Console’s URL Inspection shows what the real Googlebot receives.

Expired domain abuse shows no signs: the Wayback Machine holds no archived copy of example.co.uk from before the current registration, so there is no earlier site to compare.

Not checked automatically

Machine-generated traffic, legal removals, personal information removals and policy circumvention are listed for the owner to review by hand. Brookfield does not send automated searches to Google, has had no copyright or personal information removal requests and has never moved domains to dodge action, so the owner notes “not applicable” against each. The same label would appear against expired domain abuse if that check could not be completed, for example if no registration date could be found or the Wayback Machine did not answer; here it could be completed.

Files listed but not checked

The sitemap includes a PDF brochure and some gallery images. These are listed as not checked because they are not text, which is expected.

Reading this report, step by step

Step 1

Check the run settings and coverage

Before trusting any result, confirm what was read. In this example the report found just over forty URLs and checked every text URL, with the PDF and images listed as not text files and not checked. Had the free run been used, the town pages near the end of the sitemap might never have been reached, and the doorway sign would have been missed entirely. Always compare found and checked numbers first.

Step 2

Scan the summary for patterns

Look at which policies have signs and ask what they have in common. Here, link spam came from one paid widget, while the town pages and the village list both came from a past push for local searches, and the rating came from a plugin setting. Spotting those shared causes early turns what looks like four separate problems into three or four small editing jobs, each with a single owner.

Step 3

Read each sign against its page

Open each URL named in the evidence and find the exact item quoted, whether that is the sponsor link, the near-identical town text, the village paragraph or the rating block in the page source. Check which copy it came from. Everything in this example was in the visitor copy, which means the owner can see it directly and there is nothing hidden only for Googlebot.

Step 4

Trace each sign to its source

Work out where each problem lives so it is fixed once: the sidebar widget settings for the sponsor link, the agency’s page template for the town pages, the service page editor for the village list, and the reviews plugin’s options for the rating. Fixing the source rather than individual pages stops the same issue reappearing the next time a post or town page is published.

Step 5

Read the quiet results properly

Go through the Information item, the clean policies and the four unchecked practices. Confirm that the bot-check note under cloaking is explained by the CDN, that nothing in the spam score list is surprising, and write a short answer against each practice that cannot be checked automatically. This turns a clean result into a recorded decision rather than an assumption nobody has looked at.

Step 6

Turn the report into a job list

Order the work from quickest to longest: mark the sponsor link, remove the site-wide rating, rewrite the village paragraph, then rebuild or merge the town pages. Copy the AI fix prompt for the template and markup edits, or request a quote if the designer should handle it. Back up the site first, and plan a second audit with the same settings once everything is live.

What a good outcome looks like

Continuing the illustration: after the changes, the owner runs the audit again with the same Advanced controls settings so the two reports can be compared fairly.

Two points are worth drawing out. First, a clean second report shows the patterns have gone from the pages read; it does not say anything about how Google will rank the site, which depends on far more than spam. Second, the owner keeps both reports, because they document what was found and fixed, which is useful if questions arise later, for example after a Google spam update.

For the full repair instructions for every policy, see the Spam Policy Audit Fixes. For how each part of the report is produced, see the Spam Policy Audit Guide, and if the ideas are new to you, start with the beginner tutorial. To run the real thing on your own site, go to the Spam Policy Audit.

Questions and answers

1. Is this a real audit of a real company?

No. Brookfield Garden Rooms is fictional and example.co.uk is a placeholder address used for this walk-through, and every finding, address and count on this page was written to illustrate how the report presents results. None of it comes from a real audit or from the study published on the tool page. The result types, the kind of evidence shown and the actions available under the report do match what the real Spam Policy Audit produces, so you can use it to learn how to read your own.

2. Why does the example show signs on an honest business?

Because that is how most signs on ordinary sites arise. The audit reports patterns that Google's spam policies describe, whatever the intention behind them. A paid supplier box without the right link label, town pages written by a past agency and a plugin that adds ratings everywhere are all common on genuine small business sites. Showing them here makes the point that a sign is a prompt to tidy something up, not an accusation.

3. Would the free version have found the same things?

Not necessarily. Signed out, the audit checks up to 20 URLs, starting with the homepage and following the sitemap order, and opens fewer pages in Chrome. On a site the size of the example, that could leave the later blog posts and several town pages unread, so some evidence lines, or whole signs, might not appear. For a site with more than twenty URLs, signing in and choosing a larger tier gives fuller coverage, up to 100 URLs.

4. What would a hacked site's report look like instead?

It would typically show signs under cloaking, hacked content and sometimes sneaky redirects or hidden links, with evidence that appears only in the Googlebot, mobile or from-Google copies of pages. The quoted titles would often be gambling or pill pages, frequently in another language, that the owner never wrote. That pattern calls for an immediate clean-up rather than routine editing, and the fixes page explains the steps a developer or host will need to take.

5. Why is the spam score shown if it is not a sign?

It is extra context available on signed-in runs. DataForSEO scores the audited site and the sites it links to, and the report lists the highest-scoring linked sites alongside the page that links to each. It is DataForSEO's own measure rather than anything Google publishes, so it never counts towards the policy results. It is most useful for spotting an outbound link to a site you would rather not be associated with.

6. Should Brookfield delete all its town pages to be safe?

Not necessarily. Google's doorway policy targets near-copies made to catch searches for each place, not pages that genuinely help people in a particular area. Brookfield has real projects in a few towns, so pages built around those projects, with their own photos and details, can stay. The pages it cannot make genuinely different are better merged into one coverage page with redirects, which keeps any visitors and links that arrive at the old addresses.

Fix the signs in your own report

Spam Policy Audit Fixes covers each policy the audit reports, including link spam, doorway pages, keyword stuffing and spammy structured data, with the change that clears each sign.

Open Spam Policy Audit Fixes →
💬 Got a problem?
Related Guides: All Spam Policy Audit Fixes  ·  Spam Policy Audit Guide  ·  Spam Policy Audit Beginner Tutorial  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.