Fill in before sending
[business name][site URL][location name or domain, or "none"][profile URLs][city][NEEDS CONFIRMATION]
Audit whether the entity information for my business [business name] is consistent across the web. My site: [site URL]. My Google Business Profile location: [location name or domain, or "none"]. My official social profiles: [profile URLs]. City: [city]. This is a read-only, planning job, do not change anything.
AI systems recognise a business by matching the same facts across different sources. If the name, address, phone or website differ between sources, a system may treat them as two businesses or repeat the wrong detail. So compare every fact character by character.
1. Visible facts on the site. Read the homepage, contact and about pages with site_read_url and text=true (if truncated is true, read again with max_bytes=1000000). Extract the visible business name, address, phone, email and opening hours page by page. Flag separately if any of these are not visible without JavaScript.
2. Schema on the site. Read the same three pages and the two most important service pages with site_read_url and max_bytes=1000000, and extract the `application/ld+json` blocks from the body. For each block list the type, @id, name, url, logo, telephone, address, sameAs and parentOrganization. Check: does the Organization or LocalBusiness node appear with the same @id on every page, and if there is no @id at all the nodes cannot be linked; is the same business written under different names on different pages; do the schema phone and address match the visible text; does every sameAs URL return 200 with site_read_url and max_bytes=0.
3. Business Profile. If I have a location, read the name, address, phone, website, categories and opening hours with gbp_location_details. Note whether the website field points to the homepage or to the matching branch page.
4. Local directories. Check seo_history for an earlier run with these arguments. If there is none, run seo_local_listings with brand=[business name] and city=[city]. The tool spends credits per directory, so tell me how many directories will be queried before using the default set. Take the number of records per directory, any record marked closed and any duplicates. If a directory returned an error, write "could not be measured", not "no listing".
5. Wikidata. Read https://www.wikidata.org/w/api.php?action=wbsearchentities&search=[business name]&language=en&format=json with site_read_url. If there is an item, check whether its official website matches my site. If there is none, say so, but do not suggest creating one for a small business, because Wikidata has notability rules.
Format the output like this. First a three-sentence summary. Then a comparison table: fact (name, address, phone, website, hours, social profiles), visible site text, site schema, Business Profile, directories, status (consistent, different, missing). Then a schema table: page, type, @id, problem. Then a fix plan ranked by importance: for each item, where it changes, the old value, the new value and who does it.
At the end, write a JSON-LD draft for a single @id graph to use across the whole site: Organization or the right LocalBusiness subtype with the id `[site URL]/#org` or `/#business`, WebSite with `/#website` and a publisher link, and sameAs holding only official profiles that return 200. Use only facts that are on the site or that I gave you. If opening hours, coordinates, ratings or a founding date are not available, leave the field out entirely, and mark every field you are unsure of as [NEEDS CONFIRMATION]. Applying this draft is a separate job, so do not touch any file or profile now.
Example result
An example of the output this prompt produces. Its structure comes from the tools' real output; numbers and names are fictional.
Example output (based on a fictional business, not real customer data)
Summary. Blue Door Vets has the same name and phone on the site and in Business Profile, but the address reads "12 High St" on the site and "12A High Street" in the profile. None of the four JSON-LD blocks on the site has an @id, so the Organization, WebSite and page nodes are not linked. One directory holds two separate records, and one of them shows the old phone number.
| Fact | Visible text | Schema | Business Profile | Directories | Status |
|---|
| Name | Blue Door Veterinary Clinic | Blue Door Vets | Blue Door Veterinary Clinic | 2 records, same name | Different (schema) |
| Address | 12 High St | none | 12A High Street | Old address on 1 record | Different |
| Phone | 0161 000 0000 | 0161 000 0000 | 0161 000 0000 | Old number on 1 record | Different (directory) |
| Instagram | yes | in sameAs, 200 | yes | | Consistent |
| Page | Type | @id | Problem |
|---|
| / | Organization | none | Node cannot link to other pages |
| /contact/ | VeterinaryCare | none | Address field empty |
One directory query returned a provider error, so it is recorded as "could not be measured". There is no Wikidata item.
Fix plan
1. Use one address format everywhere: "12A High Street" on the site and in the schema (you, after approval).
2. Ask the directory to close the record with the old phone number (you).
3. Apply the @id graph below to every page (a separate job).
In the JSON-LD draft the opening hours are left as [NEEDS CONFIRMATION], because the site and the profile disagree.