A simple SEO inspecter Tool, to get social media card previews
at main 58 lines 2.5 kB view raw view rendered
1# @madebydanny / seo-tester 2![img](https://mbdio.uk/xrpc/com.atproto.sync.getBlob?did=did:plc:l37td5yhxl2irrzrgvei4qay&cid=bafkreid3uxjmibj6nnlnvksakjtr4kuszlvmsvyau42v46w3o2222alnzm 3) 4Try it [seo-tester.madebydanny.uk](https://seo-tester.madebydanny.uk/) 5 6> [!IMPORTANT] 7> The app is slow at first, please give it time to do the first scraping 8 9# SEO Inspector *(Vite + React + TypeScript)* 10 11Lightweight web app for scraping a page's metadata and producing an SEO-quality report. 12 13Features 14- Analyze a URL for title, description, Open Graph and Twitter metadata, canonical, lang, viewport, charset, and more. 15- Built with Vite, React, TypeScript and shadcn/ui primitives. 16- Client-side HTML fetch via a CORS proxy and metadata extraction. 17 18Quick start 19 201. Install dependencies 21 22```bash 23cd /Users/danielmorrisey/Desktop/Tangled/seo-inspector-api 24npm install 25``` 26 272. Start dev server 28 29```bash 30npm run dev 31``` 32 333. Open the app in your browser (usually http://localhost:5173) and go to the main page to use the SEO tester. 34 35Notes about the SEO tester performance improvements 36- In-memory caching: repeated analyses for the same URL use a short (5 minute) cache to avoid refetching HTML. 37- Fetch timeout: network fetches use an 8s AbortController timeout to avoid long hangs. 38- UI responsiveness: removed unnecessary UI delays and shortened the animated counters for a snappier feel. 39 40Testing the improvements 41- Run an analysis on a URL (for example https://github.com). Re-run the same URL and you should see the second run complete faster. 42- Test a slow or non-responsive target to see the 8s timeout and error handling. 43 44Developer notes 45- Type checking: after installing deps run `npx tsc --noEmit` to run TypeScript checks. 46- Linting: `npm run lint` (requires eslint installed via `npm install`). 47- The simple cache is stored in-memory (window.__seo_tester_cache_v1). If you want persistence across reloads, persist to localStorage or a small server-side cache. 48 49Contact 50- For changes or suggestions, open an issue or edit the repo directly. 51 52Enjoy! 53 54**Preview** 55--- 56![img](https://mbdio.uk/xrpc/com.atproto.sync.getBlob?did=did:plc:l37td5yhxl2irrzrgvei4qay&cid=bafkreiceafmigyon4mg7dg4vgmur2doxppdgiouoxj7wxpnrbncohk7d3u) 57![img](https://mbdio.uk/xrpc/com.atproto.sync.getBlob?did=did:plc:l37td5yhxl2irrzrgvei4qay&cid=bafkreief5clpgayifmwibr5tpb4wcx6u64g4fwgrm6eaukcqveaoucgp64) 58![img](https://mbdio.uk/xrpc/com.atproto.sync.getBlob?did=did:plc:l37td5yhxl2irrzrgvei4qay&cid=bafkreifnlouxx5dmtznslfosspzd6kir2v7k5tz2kggymhxbpymtplg7ge)