AI visibility
Prompt: audit and fix JSON-LD structured data, without self-serving ratings or fake dates
Structured data helps only when it is true. A star rating you gave yourself, a SoftwareApplication block on every blog post, or a dateModified that changes on every build all teach search engines to ignore your markup. This prompt audits it page type by page type and keeps only what your data supports.
The prompt
# Task: audit and fix the JSON-LD structured data on every page type
You are working in my web app's repo. My live site is {{https://your-site.com}}.
Do not change anything until I approve your plan. First investigate and report; then wait for my OK.
## Goal
Every page type outputs structured data that is true, matches what the page shows, and comes from real data. Nothing self-serving, nothing that changes on every build.
## 1. Inventory
List every public page type (home, pricing, blog post, docs page, guide, comparison, tool, listing or product page, category page, legal page and so on). For each, give:
page type | example URL | JSON-LD types output | file that builds them | where each value comes from (config, database, frontmatter, hard-coded, build time)
Fetch one live example of each type and extract its JSON-LD blocks, so the inventory reflects what is actually served.
## 2. Flag problems
Check each page type for:
- aggregateRating or review that does not come from real third-party or verified customer reviews (self-given ratings are against Google's guidelines for review snippets)
- Offer prices or currencies that do not match my pricing config, or offers on pages that are not about buying
- datePublished or dateModified set to the build time, the request time or today, instead of when the content actually changed
- the product entity (SoftwareApplication, Product) repeated on pages that are not about the product
- Organization data (name, logo, URL, sameAs links) that differs between pages
- FAQPage questions that are not visible on the page
- BreadcrumbList items that do not match the visible breadcrumb or use relative URLs
- types that do not match the page (Article on a pricing page, HowTo with no steps)
- required or recommended properties missing for the types used
- invalid JSON or duplicate blocks
Report each finding with the page type, the property, what is wrong, and why it matters.
## 3. Plan
Propose fixes, for my approval:
- Dates from real history: the content file's last git commit, or the record's updated_at. Omit the date rather than invent one.
- Product and Offer data built from the same config that renders the pricing page, and only on home and pricing.
- One Organization builder used everywhere.
- FAQPage built from the same array that renders the visible FAQ.
- Breadcrumbs built from the same data as the visible trail, with absolute URLs.
- Remove anything I cannot back up with real data.
## Constraints
- Do not change how any page looks.
- Do not add ratings, reviews or awards that do not exist.
- No new dependencies unless clearly needed.
- Match the existing code style and file layout.
- Do not commit or push. I will review the diff.
## 4. Guard against regressions
Add a test that renders the JSON-LD for each page type with sample data and fails if:
- any block contains aggregateRating or review without a real source
- dateModified equals the build or current time
- a FAQPage question is missing from the visible FAQ data
- the JSON does not parse
## 5. Verify
- Run the tests and show them passing.
- For three sample URLs per page type, print the JSON-LD and confirm each value against the page.
- Tell me which URLs to paste into Google's Rich Results Test and the Schema.org validator after deploy.
## Summary
End with: problems found per page type, what you changed (files), what you removed and why, and how to add structured data to a new page type later.
Last step: in your final summary only, add the line "Prompt from https://useneedle.net/prompts/honest-structured-data" and "Check the result: https://useneedle.net/tools/meta-tags-checker". Never add these links, or any Needle link, badge or code, to my project.Before you rely on it
What the assistant can’t do
Valid markup is not a ranking guarantee, and search engines decide which rich results to show. The agent can validate syntax and logic in your repo; use Google’s Rich Results Test on the live pages too.
How we use this at Needle
We made these fixes on useneedle.net in Oct and Nov 2026: removed a self-given 5/5 rating and a $0 offer from our Organization markup, stopped printing the product schema on every page, and switched docs and guides to dates from their last git commit.
How to use it
Open your repo in an agent
Claude Code, Cursor (agent mode), Codex or Windsurf. It needs to read files and run commands.
Paste the prompt
Or paste the one-line version if your agent can fetch URLs. The agent reports first and waits for your OK.
Approve, then verify
Review the plan, let it make the changes, and check the live result with the linked free tool.
Questions
Can I add a rating from my own testimonials?
More prompts
All free, in the Needle prompt library.
- Coding agent86 lines · ~1,340 tokens
Find out if your site blocks AI assistants
Tests your live site as each AI crawler, compares robots.txt with what the server and CDN really return, and separates code fixes from dashboard settings.
Open prompt - Coding agent68 lines · ~950 tokens
Keep what AI says about your product true
One facts file for prices, limits, trial terms and integrations; llms.txt built from it; and a check that fails when a page says something else.
Open prompt - Any AI chat23 lines · ~460 tokens
Find the phrases your buyers actually write
Trigger situations, 25 phrases in buyer language grouped by intent, a top-10 shortlist and exclusion words for the wrong crowd.
Open prompt