[{"data":1,"prerenderedAt":809},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fprojects":3,"docs-sib-\u002Fdocs\u002Fprojects":718,"docs-nav":783},{"id":4,"title":5,"body":6,"description":708,"extension":709,"meta":710,"navigation":711,"order":712,"path":713,"section":714,"seo":715,"stem":716,"__hash__":717},"docs\u002Fdocs\u002Fprojects.md","Projects",{"type":7,"value":8,"toc":690},"minimark",[9,14,23,30,33,51,55,68,74,79,97,101,108,118,189,202,290,297,303,307,312,317,324,327,352,355,459,462,465,469,474,483,497,501,515,519,525,531,537,541,547,609,618,622,671,676,680,687],[10,11,13],"h2",{"id":12},"one-crawl-one-file","One crawl, one file",[15,16,17,18,22],"p",{},"Every crawl you run is saved as a single file on your computer, in CrawlStat's ",[19,20,21],"code",{},"projects"," folder. The file holds everything: every URL, its status, headers, titles and links, the crawl's settings and log, the queue of URLs still to fetch, and the audit results.",[15,24,25,26,29],{},"Files are named after the site and the time the crawl started, for example ",[19,27,28],{},"example-com-20260224-1432.db",". Each crawl gets a new file, so crawling the same site again never overwrites an earlier crawl.",[15,31,32],{},"While a crawl is open you may see two small companion files next to it, with the same name plus a short suffix. They're a normal part of how crawl files are saved, and CrawlStat cleans them up along with the crawl if you delete it.",[34,35,37],"callout",{"type":36},"note",[15,38,39,40,44,45,50],{},"Disk use is roughly 2 KB per URL, so a 50,000 URL crawl takes about 100 MB. Turning on ",[41,42,43],"strong",{},"Keep raw HTML"," in ",[46,47,49],"a",{"href":48},"\u002Fdocs\u002Fsettings","Settings"," makes crawl files much bigger.",[10,52,54],{"id":53},"the-projects-screen","The Projects screen",[15,56,57,59,60,63,64,67],{},[41,58,5],{}," is where you land when you open CrawlStat, and the first item in the sidebar. Its header shows how many crawls you have and where they're stored, with ",[41,61,62],{},"Refresh"," and ",[41,65,66],{},"New crawl"," buttons.",[69,70],"screenshot",{"alt":71,"caption":72,"src":73},"The Projects screen in list view, with overview tiles across the top and one row per site below","List view: one row per site, with its health trend, response breakdown and a bar for every crawl in its history.","\u002Fscreenshots\u002Fprojects-list.png",[75,76,78],"h3",{"id":77},"overview","Overview",[15,80,81,82,85,86,85,89,92,93,96],{},"Four tiles add up figures across your recent crawls: ",[41,83,84],{},"Crawls",", ",[41,87,88],{},"URLs crawled",[41,90,91],{},"Broken URLs"," (everything that returned 4xx or 5xx) and ",[41,94,95],{},"Issues",".",[75,98,100],{"id":99},"two-views","Two views",[15,102,103,104,107],{},"Below the tiles, a bar holds a ",[41,105,106],{},"Filter by site…"," field and a toggle between two views. CrawlStat remembers the one you picked.",[15,109,110,113,114,117],{},[41,111,112],{},"Cards"," (titled ",[41,115,116],{},"Recent crawls",") show one card per crawl, newest first:",[119,120,121,145,160,175],"ul",{},[122,123,124,125,85,128,85,131,85,134,137,138,141,142,96],"li",{},"The site, its start URL and its state: ",[41,126,127],{},"Finished",[41,129,130],{},"Running",[41,132,133],{},"Paused",[41,135,136],{},"Stopped"," or ",[41,139,140],{},"Failed",". The crawl you have open is marked ",[41,143,144],{},"Open",[122,146,147,148,85,151,85,154,137,157,96],{},"A health ring with the share of URLs that answered with a success or a redirect, and a verdict: ",[41,149,150],{},"Healthy",[41,152,153],{},"Some problems",[41,155,156],{},"Needs work",[41,158,159],{},"Not started",[122,161,162,85,165,85,168,171,172,96],{},[41,163,164],{},"Crawled",[41,166,167],{},"Errors",[41,169,170],{},"Warnings"," and the file ",[41,173,174],{},"Size",[122,176,177,178,181,182,185,186,96],{},"A ",[41,179,180],{},"Compare"," button and either ",[41,183,184],{},"Resume"," (for a crawl that didn't finish, with how many URLs are still queued) or ",[41,187,188],{},"Recrawl",[15,190,191,113,194,197,198,201],{},[41,192,193],{},"One row per site",[41,195,196],{},"Sites",") groups every crawl of the same site into a single row. ",[19,199,200],{},"www."," and the bare domain count as one site. The columns are:",[203,204,205,218],"table",{},[206,207,208],"thead",{},[209,210,211,215],"tr",{},[212,213,214],"th",{},"Column",[212,216,217],{},"What it shows",[219,220,221,232,242,252,262,271,280],"tbody",{},[209,222,223,229],{},[224,225,226],"td",{},[41,227,228],{},"Site",[224,230,231],{},"The site and its latest start URL.",[209,233,234,239],{},[224,235,236],{},[41,237,238],{},"Health",[224,240,241],{},"The latest crawl's health, and how many points it moved since the crawl before.",[209,243,244,249],{},[224,245,246],{},[41,247,248],{},"Responses",[224,250,251],{},"The mix of 2xx, 3xx, 4xx and 5xx answers and failures in the latest crawl, with a caption in plain words.",[209,253,254,259],{},[224,255,256],{},[41,257,258],{},"History",[224,260,261],{},"A bar for each crawl of the site, oldest to newest, so a trend is visible at a glance. Click a bar to open that crawl.",[209,263,264,268],{},[224,265,266],{},[41,267,164],{},[224,269,270],{},"URLs crawled in the latest crawl.",[209,272,273,277],{},[224,274,275],{},[41,276,95],{},[224,278,279],{},"Errors and warnings in the latest crawl.",[209,281,282,287],{},[224,283,284],{},[41,285,286],{},"Last crawl",[224,288,289],{},"When the site was last crawled.",[15,291,292,293,296],{},"Click a column header to sort by it, and again to reverse. Click the chevron at the end of a row (",[41,294,295],{},"Show earlier crawls",") to list every crawl of that site underneath it.",[15,298,299,300,302],{},"Click a card or a row to open that crawl's page (see below). The list keeps your 20 most recent crawls. If a crawl file has been moved or deleted outside CrawlStat, it drops off the list automatically. Click ",[41,301,62],{}," to check again.",[10,304,306],{"id":305},"a-crawls-page","A crawl's page",[69,308],{"alt":309,"caption":310,"src":311},"The Overview of a single crawl: a health score of 100%, counters for crawled, broken, errors and warnings, and the top six issues","Open a crawl and you land on its Overview: health, the headline counts and the six issues worth your time first.","\u002Fscreenshots\u002Fcrawl-overview.png",[69,313],{"alt":314,"caption":315,"src":316},"The Visualise tab showing the link graph: pages as circles in rings by clicks from home, sized by link value, with a tooltip showing depth, inlinks and link score","Visualise draws the site: rings are clicks from home, size is link value. Hover any page for its depth, inlinks and score.","\u002Fscreenshots\u002Flink-graph.png",[15,318,319,320,323],{},"Opening a crawl takes you to its own page. The header says which crawl it is: the site, its state, and a line with the start URL, when it ran, how many URLs it crawled, how healthy it is and the file size. ",[41,321,322],{},"All projects"," (the back arrow) returns to Projects.",[15,325,326],{},"The header's buttons work on this crawl:",[119,328,329,339,345],{},[122,330,331,334,335,96],{},[41,332,333],{},"Export a client report:"," a branded PDF or web page, once the crawl has finished. See ",[46,336,338],{"href":337},"\u002Fdocs\u002Fclient-reports","Client reports",[122,340,341,344],{},[41,342,343],{},"Compare:"," compare this crawl with another. See below.",[122,346,347,137,349,351],{},[41,348,184],{},[41,350,188],{},", as on its card.",[15,353,354],{},"Below the header are the crawl's tabs:",[203,356,357,367],{},[206,358,359],{},[209,360,361,364],{},[212,362,363],{},"Tab",[212,365,366],{},"What it's for",[219,368,369,383,395,409,423,433,446],{},[209,370,371,375],{},[224,372,373],{},[41,374,78],{},[224,376,377,378,382],{},"While the crawl runs, its live progress (",[46,379,381],{"href":380},"\u002Fdocs\u002Fwatching-a-crawl","Watching a crawl","). Afterwards, its health, an accessibility verdict, Crawled, Broken, Errors and Warnings, and the top issues.",[209,384,385,389],{},[224,386,387],{},[41,388,95],{},[224,390,391,392,96],{},"Every problem found, ranked, with why it ranks and which pages it affects. See ",[46,393,95],{"href":394},"\u002Fdocs\u002Fissues",[209,396,397,402],{},[224,398,399],{},[41,400,401],{},"Pages",[224,403,404,405,96],{},"Every URL, in a table you can filter, sort and export. See ",[46,406,408],{"href":407},"\u002Fdocs\u002Fresults-table","The Pages table",[209,410,411,416],{},[224,412,413],{},[41,414,415],{},"Plan",[224,417,418,419,96],{},"What to fix first, and a written report. See ",[46,420,422],{"href":421},"\u002Fdocs\u002Fthe-plan","The plan",[209,424,425,430],{},[224,426,427],{},[41,428,429],{},"Visualise",[224,431,432],{},"How the site is structured: which sections hold the pages, and which link to which.",[209,434,435,440],{},[224,436,437],{},[41,438,439],{},"UX Testing",[224,441,442,443,96],{},"Test a page against what it's for. See ",[46,444,439],{"href":445},"\u002Fdocs\u002Fux-testing",[209,447,448,453],{},[224,449,450],{},[41,451,452],{},"Accessibility",[224,454,455,456,96],{},"The site against WCAG. See ",[46,457,452],{"href":458},"\u002Fdocs\u002Faccessibility",[15,460,461],{},"The accessibility check starts in the background as soon as you open a finished crawl, so its verdict is usually waiting on the Overview by the time you look.",[15,463,464],{},"If a crawl stopped before finishing, the Overview says how many URLs are still queued and suggests resuming it.",[10,466,468],{"id":467},"recrawling","Recrawling",[69,470],{"alt":471,"caption":472,"src":473},"The Projects screen in grid view, with a card for each recent crawl showing health, counts and a Resume button","Grid view: a card per crawl. A stopped crawl keeps its queue, so Resume picks up exactly where it left off.","\u002Fscreenshots\u002Fprojects-grid.png",[15,475,476,478,479,482],{},[41,477,188],{}," (on a card, in a crawl's header, or in the ",[41,480,481],{},"⋯"," menu) crawls the site again with exactly the same settings: the same mode, start URL, limits, patterns and JavaScript rendering. It writes a new crawl file, so the earlier crawl is kept for comparison.",[15,484,485,488,489,491,492,496],{},[41,486,487],{},"Recrawl with changes…"," in the ",[41,490,481],{}," menu opens the ",[46,493,495],{"href":494},"\u002Fdocs\u002Fyour-first-crawl","New crawl dialog"," filled in with the earlier crawl's settings, with a summary that starts \"As before:\". Change what you need, then start it.",[10,498,500],{"id":499},"comparing-from-projects","Comparing from Projects",[15,502,503,504,506,507,510,511,96],{},"The ",[41,505,180],{}," button lists the crawls you can compare this one with. Crawls of the same site come first, with the one just before it marked ",[41,508,509],{},"Previous crawl","; crawls of other sites follow. Pick one and the comparison runs straight away, with the older crawl on the left. See ",[46,512,514],{"href":513},"\u002Fdocs\u002Fcomparing-crawls","Comparing crawls",[10,516,518],{"id":517},"resuming-a-crawl","Resuming a crawl",[15,520,521,522,524],{},"If a crawl didn't finish because you stopped it, the app quit, or your computer restarted, its card shows a ",[41,523,184],{}," button and tells you how many URLs are still queued.",[15,526,527,528,530],{},"Click ",[41,529,184],{}," and CrawlStat continues from where it left off. It uses the settings the crawl originally started with, not your current defaults, and that includes its URL limit.",[34,532,534],{"type":533},"tip",[15,535,536],{},"Resuming is safe after a crash. URLs that were in flight when the crawl was interrupted are simply put back in the queue and fetched again.",[10,538,540],{"id":539},"removing-and-deleting","Removing and deleting",[15,542,543,544,546],{},"On the Projects screen, each crawl has a ",[41,545,481],{}," menu:",[203,548,549,559],{},[206,550,551],{},[209,552,553,556],{},[212,554,555],{},"Option",[212,557,558],{},"What it does",[219,560,561,570,579,589,599],{},[209,562,563,567],{},[224,564,565],{},[41,566,188],{},[224,568,569],{},"Crawls the site again with the same settings, into a new file.",[209,571,572,576],{},[224,573,574],{},[41,575,487],{},[224,577,578],{},"Opens the New crawl dialog with this crawl's settings filled in.",[209,580,581,586],{},[224,582,583],{},[41,584,585],{},"Copy file path",[224,587,588],{},"Copies the full path of the crawl file, for example so you can find it in Finder or back it up.",[209,590,591,596],{},[224,592,593],{},[41,594,595],{},"Remove from list",[224,597,598],{},"Takes the crawl off the Projects screen. The file stays on disk.",[209,600,601,606],{},[224,602,603],{},[41,604,605],{},"Delete crawl file…",[224,607,608],{},"Permanently deletes the crawl file and everything in it, after you confirm.",[34,610,612],{"type":611},"warning",[15,613,614,615,617],{},"Deleting a crawl can't be undone. The file is removed from disk, not moved to the Bin. If you might want it later, use ",[41,616,595],{}," instead, or copy the file somewhere safe first.",[10,619,621],{"id":620},"where-the-files-are","Where the files are",[203,623,624,634],{},[206,625,626],{},[209,627,628,631],{},[212,629,630],{},"Platform",[212,632,633],{},"Crawl folder",[219,635,636,646,656],{},[209,637,638,641],{},[224,639,640],{},"macOS",[224,642,643],{},[19,644,645],{},"~\u002FLibrary\u002FApplication Support\u002FCrawlStat\u002Fprojects",[209,647,648,651],{},[224,649,650],{},"Windows",[224,652,653],{},[19,654,655],{},"%APPDATA%\\CrawlStat\\projects",[209,657,658,661],{},[224,659,660],{},"Linux",[224,662,663,666,667,670],{},[19,664,665],{},"~\u002F.local\u002Fshare\u002Fcrawlstat\u002Fprojects"," (or ",[19,668,669],{},"$XDG_DATA_HOME\u002Fcrawlstat\u002Fprojects",")",[15,672,673,674,96],{},"You'll also find the path in the Projects header, at the bottom of the New crawl dialog, and in ",[46,675,49],{"href":48},[75,677,679],{"id":678},"backing-up-and-sharing-crawls","Backing up and sharing crawls",[15,681,682,683,686],{},"Because a crawl is one file, you can back it up, archive it, or send it to a colleague by copying the ",[19,684,685],{},".db"," file. Copy it when CrawlStat isn't using it, so everything has been saved into the main file.",[15,688,689],{},"CrawlStat lists the crawls it has run on this machine. There isn't currently a way to open a crawl file from elsewhere from inside the app.",{"title":691,"searchDepth":692,"depth":692,"links":693},"",2,[694,695,700,701,702,703,704,705],{"id":12,"depth":692,"text":13},{"id":53,"depth":692,"text":54,"children":696},[697,699],{"id":77,"depth":698,"text":78},3,{"id":99,"depth":698,"text":100},{"id":305,"depth":692,"text":306},{"id":467,"depth":692,"text":468},{"id":499,"depth":692,"text":500},{"id":517,"depth":692,"text":518},{"id":539,"depth":692,"text":540},{"id":620,"depth":692,"text":621,"children":706},[707],{"id":678,"depth":698,"text":679},"How CrawlStat stores your crawls, and how to browse, open, recrawl, compare, resume and delete them from the Projects screen.","md",{},true,11,"\u002Fdocs\u002Fprojects","Using CrawlStat",{"title":5,"description":708},"docs\u002Fprojects","FKV0QwoUU31G2YoZbKcN3jfnm39hvNHQobZoYKu0ET4",[719,721,723,727,730,732,734,736,738,740,744,748,750,752,753,755,759,763,767,771,775,779],{"title":338,"path":337,"order":720},null,{"title":722,"path":445,"order":720},"UX testing",{"title":724,"path":725,"order":726},"Getting started","\u002Fdocs\u002Fgetting-started",1,{"title":728,"path":729,"order":692},"Installing CrawlStat","\u002Fdocs\u002Finstalling",{"title":731,"path":494,"order":698},"Your first crawl",{"title":381,"path":380,"order":733},4,{"title":408,"path":407,"order":735},5,{"title":95,"path":394,"order":737},6,{"title":422,"path":421,"order":739},7,{"title":741,"path":742,"order":743},"Journeys","\u002Fdocs\u002Fjourneys",8,{"title":745,"path":746,"order":747},"Competitor Intelligence","\u002Fdocs\u002Fcompetitor-intelligence",8.7,{"title":452,"path":458,"order":749},9,{"title":514,"path":513,"order":751},10,{"title":5,"path":713,"order":712},{"title":49,"path":48,"order":754},12,{"title":756,"path":757,"order":758},"Keyboard shortcuts","\u002Fdocs\u002Fkeyboard-shortcuts",13,{"title":760,"path":761,"order":762},"Open source and licence","\u002Fdocs\u002Flicensing",14,{"title":764,"path":765,"order":766},"Privacy and your data","\u002Fdocs\u002Fprivacy-and-data",15,{"title":768,"path":769,"order":770},"The crawler and robots.txt","\u002Fdocs\u002Fcrawler-and-robots",16,{"title":772,"path":773,"order":774},"Local AI","\u002Fdocs\u002Flocal-ai",17,{"title":776,"path":777,"order":778},"Troubleshooting","\u002Fdocs\u002Ftroubleshooting",18,{"title":780,"path":781,"order":782},"FAQ","\u002Fdocs\u002Ffaq",19,[784,785,786,788,789,790,791,792,793,794,795,796,797,798,799,800,801,803,804,805,806,808],{"title":338,"path":337,"section":720,"order":720},{"title":722,"path":445,"section":720,"order":720},{"title":724,"path":725,"section":787,"order":726},"Start here",{"title":728,"path":729,"section":787,"order":692},{"title":731,"path":494,"section":787,"order":698},{"title":381,"path":380,"section":714,"order":733},{"title":408,"path":407,"section":714,"order":735},{"title":95,"path":394,"section":714,"order":737},{"title":422,"path":421,"section":714,"order":739},{"title":741,"path":742,"section":714,"order":743},{"title":745,"path":746,"section":714,"order":747},{"title":452,"path":458,"section":714,"order":749},{"title":514,"path":513,"section":714,"order":751},{"title":5,"path":713,"section":714,"order":712},{"title":49,"path":48,"section":714,"order":754},{"title":756,"path":757,"section":714,"order":758},{"title":760,"path":761,"section":802,"order":762},"Account & data",{"title":764,"path":765,"section":802,"order":766},{"title":768,"path":769,"section":802,"order":770},{"title":772,"path":773,"section":802,"order":774},{"title":776,"path":777,"section":807,"order":778},"Help",{"title":780,"path":781,"section":807,"order":782},1793827598249]