Canonical Graph Auditor

Canonical Graph Auditor

Inspect a graph of declared URL, canonical and status data from CSV. No live pages, HTTP responses or index status are fetched. Cross-origin links are review flags.

Required headers: url,canonical,status. Optional: indexable (true/false/blank). Use 1–1,000 data rows and at most 1 MiB input. URLs are limited to 2,048 characters. Source url must be absolute HTTP(S); relative canonicals are resolved and flagged. Status and indexable are supplied declarations.

Paste CSV or choose a file.

Comments & questions

Canonical Graph Auditor

Use this workbench when a page-audit export makes it hard to see how canonical declarations connect. It follows URL nodes until a self-canonical, cycle, inconsistent declaration or absent target is reached. The report checks the supplied relationships; it does not identify the canonical URL selected by a search engine.

Key features

  • Trace declaration paths and stopping points across up to 1,000 records
  • Distinguish self-canonicals from multi-node cycles
  • Flag chains, conflicting declarations, absent targets and supplied status/indexability
  • Mark cross-origin links, relative references and fragments for review
  • Retain source record numbers and normalized duplicate declarations
  • Export per-URL CSV and full nodes/edges JSON

How to use

  1. Prepare CSV with url,canonical,status and optional indexable columns.
  2. Paste it or select a UTF-8 file and confirm the delimiter.
  3. Run the audit and inspect node counts, stopping-point groups and flags.
  4. Open path details to inspect the sequence and original declarations.
  5. Export CSV or JSON and perform any required live-page verification separately.

Use cases

  • Review canonical chains before a site migration
  • Inspect an A→B→A cycle and URLs that lead into it
  • Find inconsistent canonical declarations across repeated export records
  • Separate cross-origin declarations and missing audit targets for follow-up

Frequently asked questions

Does the result show Google’s or Bing’s selected canonical?

No. It links declarations in your CSV only. It does not visit URLs, compare content, inspect search-engine selections or check indexing. Verify live selection and crawl status in the relevant search-engine tools.

Is a self-referencing canonical a cycle?

A self-canonical is treated as a stopping point. A path reaching a multi-node cycle receives a loop flag. Sharing a stopping point also does not prove that the pages contain duplicate content.

How is an absent CSV target different from a 404?

An unknown target has no record in the supplied CSV; it is not inferred to be a live 404. A 404-related flag relies on a supplied status=404 declaration. Blank indexable values remain unknown, not false.

Are cross-origin or relative canonicals always wrong?

No. Cross-origin declarations are flagged so their intent can be reviewed. Relative references are resolved against the source URL and flagged. Fragments are removed from graph identity while their presence remains recorded.

What happens to repeated source URLs?

Normalized duplicates are grouped with their source records retained. Disagreement in canonical, status or indexable creates a conflict and stops traversal there. The tool does not silently select the first declaration as definitive.

What are the input and path display limits?

CSV supports 1 MiB and 1,000 records; raw and serialized URLs each support 2,048 characters. Tables use 50-row pages and path previews show the first 50 nodes with an omitted count. JSON retains all nodes, edges and total hops for reconstruction.

Privacy

CSV and file contents are processed in current-page browser memory. Input URLs are never visited or fetched, and input is not automatically sent to servers, analytics, URLs or browser storage. Files are created only on an explicit download request; changed inputs, cancellation and leaving the page discard previous work.

References

Related Tools

Redirect Plan TesterMeta Tag GeneratorURL EncoderWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerLocalization Catalog AuditorStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorJSON Structure DiffMarkdown Table GeneratorBase64 EncoderJSON FormatterSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorHash GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →