Revision 1

Website

@namkyu · Aug 23, 2026, 2:35 AM

Added practical costs, infrastructure, analytics, Google Search indexing, Cloudflare, authentication, operations and monetization for launching and running a real website.
+25,7200
1Category: Software
2
3Page title: Website
4
5A website can be launched with very little infrastructure cost, but operating one as a real public service requires more than writing code. Domain and DNS configuration, hosting, HTTPS, analytics, search indexing, authentication, backups, and monetization become separate operational concerns once the site goes live.
6
7# Quick Facts
8
9
10| Item | Practical starting point |
11| --------------------- | ------------------------------------------------------------------------------------------------------- |
12| Development software | Free |
13| Google Analytics | Free for GA4 properties |
14| Google Search Console | Free |
15| Cloudflare | Free plan available |
16| HTTPS | Free options available |
17| Google Sign-In | Google Identity Services |
18| Custom domain | Paid; registration and renewal vary by TLD and registrar |
19| Hosting | Free tier, VPS, cloud, managed hosting, or self-hosting |
20| Main monetization | Advertising, subscriptions, affiliate commissions, sponsorships, paid listings, transactions, donations |
21| Search visibility | Crawling and indexing are not guaranteed |
22| Main hidden work | Deployment, DNS, authentication, indexing, monitoring, backups and maintenance |
23
24
25A functioning website can therefore have very low software costs. The cost profile changes substantially when traffic, storage, database usage, email delivery, APIs, redundancy, moderation, or paid acquisition increase.
26
27# Minimum Entry Setup
28
29A public website does not necessarily require paid cloud infrastructure.
30
31
32| Requirement | Minimum option | Cost | Priority | Notes |
33| ----------------- | ---------------------------------------------------------------------- | ------------------------ | ----------- | ------------------------------------------------ |
34| Code editor | [Visual Studio Code](/wiki/visual-studio-code) or equivalent | Free | Essential | For custom development |
35| Source control | [Git](/wiki/git) + [GitHub](/wiki/github) free account | Free | Recommended | Version control and deployment workflow |
36| Framework | [Next.js](/wiki/nextjs), other open-source framework, or static HTML | Free | Optional | Depends on site type |
37| Database | [PostgreSQL](/wiki/postgresql) or other open-source database | Free software | Optional | Dynamic sites only |
38| Hosting | Free-tier host or existing hardware | US$0 additional possible | Essential | Limits depend on provider |
39| DNS/CDN | [Cloudflare](/wiki/cloudflare) Free | Free | Recommended | DNS, CDN, DDoS protection and SSL |
40| HTTPS | Cloudflare Universal SSL or hosting provider certificate | Free | Essential | Public sites should use HTTPS |
41| Analytics | [Google Analytics](/wiki/google-analytics) | Free | Recommended | Visitor and acquisition measurement |
42| Search monitoring | [Google Search Console](/wiki/google-search-console) | Free | Recommended | Google crawling, indexing and search performance |
43| Authentication | [Google Sign-In](/wiki/google-sign-in) or application-managed accounts | Free entry possible | Optional | Needed only for user accounts |
44
45
46The major unavoidable cash expense for many small custom websites is therefore the domain rather than the development stack itself. A developer who already owns suitable hardware can also self-host, although this transfers uptime, networking, backups and hardware failure responsibility from a hosting company to the operator.
47
48# From Code to a Working Website
49
50A locally functioning application is only one part of operating a website.
51
52A typical production path is:
53
54`Application → Server/Hosting → Domain → DNS → HTTPS/CDN → Analytics → Search indexing → Authentication → Monitoring → Monetization`
55
56Each layer can fail independently.
57
58For example, an application may be running correctly while the public site is unavailable because DNS points to the wrong address. A site may load normally for users while Google cannot index particular pages. Google login can work in development but fail on the production domain if the OAuth configuration does not match the deployed URLs.
59
60This makes deployment and operations materially different from simply completing the application's code.
61
62# Hosting
63
64There is no single required hosting model.
65
66## Managed hosting
67
68Platforms such as [Vercel](/wiki/vercel) reduce infrastructure work by handling deployment, HTTPS and parts of the networking stack.
69
70This is useful for developers who want to deploy directly from a Git repository without maintaining a Linux server.
71
72The trade-off is that infrastructure pricing and platform limits become relevant as usage increases.
73
74## VPS
75
76A virtual private server gives the operator substantially more control.
77
78A typical custom stack can include:
79
80- Linux;
81- [Docker](/wiki/docker);
82- a web application;
83- [PostgreSQL](/wiki/postgresql);
84- a reverse proxy such as [Caddy](/wiki/caddy) or [Nginx](/wiki/nginx).
85
86The operator becomes responsible for updates, firewall configuration, database backups, storage, monitoring and recovery.
87
88## Self-hosting
89
90An existing PC or server can host a public website for little or no additional hardware cost.
91
92The operator must instead account for:
93
94- electricity;
95- residential or business internet reliability;
96- router configuration;
97- public IP or networking configuration;
98- hardware failure;
99- storage failure;
100- backups;
101- power outages;
102- remote recovery.
103
104Self-hosting therefore reduces direct hosting expenditure but does not eliminate infrastructure cost or operational work.
105
106# Domain, DNS, CDN and HTTPS
107
108A custom domain is separate from the server that runs the website.
109
110The domain must point users toward the correct infrastructure through DNS.
111
112[Cloudflare](/wiki/cloudflare) provides a Free application-services plan with DNS, CDN, unmetered DDoS protection and Universal SSL. Its paid Pro plan is US$20/mo when billed annually or US$25/mo when billed monthly; Business is US$200/mo annually or US$250/mo monthly.
113
114This means a small site does not necessarily need to purchase a separate CDN or public TLS certificate.
115
116A common configuration is:
117
118`Visitor → Cloudflare → Origin server → Application`
119
120Cloudflare can proxy public traffic while the origin server remains separately managed.
121
122For a self-hosted service, operators can restrict direct access to the origin and allow public web traffic through the proxy, provided the configuration does not unintentionally block legitimate traffic.
123
124## `www` and apex domains
125
126`example.com` and `www.example.com` are different hostnames.
127
128A production site should deliberately decide which is canonical and redirect the other when appropriate.
129
130HTTPS, DNS records, reverse-proxy configuration and application URLs need to agree. A configuration can therefore work at:
131
132`https://example.com`
133
134while failing at:
135
136`https://www.example.com`
137
138if the second hostname has not been configured correctly.
139
140# Traffic Measurement
141
142Two Google services commonly used by website operators measure different things.
143
144
145| Service | What it answers | Cost |
146| ---------------------------------------------------- | ------------------------------------------ | ----------------------- |
147| [Google Analytics](/wiki/google-analytics) | Who visits the website and how they use it | Free for GA4 properties |
148| [Google Search Console](/wiki/google-search-console) | How the website performs in Google Search | Free |
149
150
151They are complementary rather than substitutes.
152
153# Google Analytics
154
155[Google Analytics](/wiki/google-analytics) can measure website and application interactions across devices and platforms.
156
157Useful website measurements include:
158
159- users;
160- sessions;
161- landing pages;
162- acquisition channels;
163- countries;
164- events;
165- conversions;
166- user paths.
167
168GA4 properties are provided without charge under Google's Analytics terms.
169
170Analytics does not tell an operator whether a page has successfully entered Google's search index. That is a Search Console function.
171
172# Google Search Console
173
174[Google Search Console](/wiki/google-search-console) is Google's free tool for monitoring a site's presence in Google Search.
175
176It can show:
177
178- whether Google can access the site;
179- crawl and indexing problems;
180- indexed and non-indexed URLs;
181- search impressions;
182- clicks;
183- queries;
184- links;
185- sitemap processing;
186- individual URL inspection.
187
188It can also request recrawling of individual URLs.
189
190A new website can be completely functional and accessible worldwide while still having little or no Google Search visibility.
191
192# Crawling, Indexing and Ranking
193
194These are separate stages.
195
196`Discovered → Crawled → Indexed → Served/ranked`
197
198A page being crawled does not mean it has been indexed.
199
200A page being indexed does not mean it will rank for a useful query.
201
202Google states that Search works through crawling, indexing and serving results, and that not every processed page is guaranteed to enter the index.
203
204For a page to meet Google's minimum technical eligibility, Googlebot must not be blocked, the page must return a successful HTTP `200` response, and it must contain indexable content. Meeting those conditions still does not guarantee indexing.
205
206Google also states that crawling after a request can take from several days to several weeks.
207
208Repeatedly requesting recrawling of the same unchanged URL does not make Google crawl it faster.
209
210# Sitemap
211
212An XML sitemap provides search engines with URLs the operator considers important.
213
214A simple entry can contain:
215
216```xml
217<url>
218 <loc>https://example.com/page</loc>
219 <lastmod>2026-08-23T00:00:00Z</lastmod>
220</url>
221```
222
223Google recommends absolute URLs in sitemaps.
224
225A single sitemap is limited to 50 MB uncompressed or 50,000 URLs. Larger sites must split the URLs into multiple sitemaps and may use a sitemap index.
226
227For a database-backed website, the sitemap can be generated automatically from published pages instead of being manually edited.
228
229Sitemaps are particularly useful for new sites with few external links because crawlers may otherwise have fewer paths through which to discover pages.
230
231However, sitemap submission is only a signal. Google explicitly states that it does not guarantee crawling or indexing.
232
233RSS and Atom feeds can also be submitted as sitemap formats, but they are not required when an XML sitemap already provides the necessary URL discovery mechanism.
234
235# robots.txt
236
237`robots.txt` controls which parts of a site crawlers may request.
238
239A site can allow public content while excluding administrative or editing routes.
240
241Example:
242
243```text
244User-agent: *
245Allow: /
246Disallow: /api/
247Disallow: /login
248Disallow: /*/edit
249
250Sitemap: https://example.com/sitemap.xml
251```
252
253An incorrect rule can prevent search crawlers from accessing important content.
254
255`robots.txt` and `noindex` also solve different problems: crawling controls whether a crawler may request content, while a `noindex` directive tells supported search engines not to include a page in search results.
256
257# Google Login
258
259A website that requires user accounts does not necessarily need to maintain its own password system.
260
261[Google Sign-In](/wiki/google-sign-in), based on Google Identity Services, lets users authenticate with an existing Google Account.
262
263Google's current web setup requires an OAuth 2.0 client ID. The developer creates or selects a project in Google Cloud Console, configures OAuth branding/settings and loads the Google Identity Services client library.
264
265Production configuration can involve:
266
267- OAuth client ID;
268- application branding;
269- authorized domain;
270- JavaScript origin;
271- redirect URI;
272- consent configuration;
273- backend ID-token verification.
274
275A typical production origin might be:
276
277`https://example.com`
278
279while an authentication framework may use a callback such as:
280
281`https://example.com/api/auth/callback/google`
282
283The exact callback depends on the application's authentication implementation.
284
285A mismatch between the configured URI and the application's URI can prevent authentication even when the rest of the website operates normally.
286
287Google Sign-In authenticates the Google user; it does not replace the website's own session and authorization logic. The application still decides what the authenticated user is allowed to do.
288
289Authentication should also be distinguished from authorization to Google APIs. Google Identity Services separates signing a user into a website from requesting permission to access additional Google data.
290
291# Google Cloud Is Not the Same as Google Login
292
293Creating a Google Cloud project for an OAuth client does not mean the website must host its application on [Google Cloud](/wiki/google-cloud).
294
295For example, the application may run on:
296
297`Self-hosted Linux server`
298
299while using:
300
301`Google Cloud project → OAuth configuration → Google Sign-In`
302
303The server itself can remain completely outside Google Cloud.
304
305Likewise, [Google Analytics](/wiki/google-analytics), [Google Search Console](/wiki/google-search-console) and Google Cloud have different purposes despite all being Google services.
306
307# Operating Stack Example
308
309A small custom content or community website can realistically use a stack such as:
310
311
312| Layer | Example |
313| ------------------- | ---------------------------------------------------- |
314| Application | [Next.js](/wiki/nextjs) |
315| Database | [PostgreSQL](/wiki/postgresql) |
316| Containers | [Docker](/wiki/docker) |
317| Reverse proxy | [Caddy](/wiki/caddy) |
318| DNS/CDN | [Cloudflare](/wiki/cloudflare) |
319| HTTPS | Caddy and/or Cloudflare |
320| Authentication | [Google Sign-In](/wiki/google-sign-in) |
321| Traffic measurement | [Google Analytics](/wiki/google-analytics) |
322| Search monitoring | [Google Search Console](/wiki/google-search-console) |
323| Search discovery | XML sitemap + crawlable internal links |
324
325
326Most of these components have a free option or are open-source. Infrastructure cost therefore does not necessarily become large before a site has substantial traffic.
327
328The more important early cost can be development and maintenance time.
329
330# How It Makes Money
331
332A website is a distribution mechanism rather than a single business model.
333
334Revenue depends on what the site provides and what economic action occurs after traffic arrives.
335
336Common models include:
337
338
339| Model | Revenue event | Common fit |
340| ------------------- | ----------------------------------- | -------------------------------- |
341| Display advertising | Ad impression/click ecosystem | Content, Wiki, forum |
342| Affiliate | Referred purchase or action | Reviews, comparisons, guides |
343| Subscription | Recurring user payment | SaaS, premium information, tools |
344| Paid listing | Business pays for placement/listing | Directory, marketplace |
345| Transaction fee | Transaction completed | Marketplace/platform |
346| Sponsorship | Direct sponsor agreement | Community/content |
347| Digital product | Product purchase | Education, templates, data |
348| Donation/membership | Voluntary or member payment | Community, open knowledge |
349
350
351Traffic alone is therefore not revenue.
352
353Two websites with the same monthly visitors can have radically different economics depending on visitor geography, purchase intent, advertising niche, conversion rate, pricing and revenue model.
354
355# Advertising
356
357Display advertising is one of the easiest monetization models to understand operationally because revenue can begin without building a proprietary payment product.
358
359[Google AdSense](/wiki/google-adsense) is one example, but advertising economics should be evaluated using publisher-side metrics such as RPM rather than advertiser CPM.
360
361For a content site:
362
363`Page RPM = estimated publisher revenue / page views × 1,000`
364
365A site with substantial traffic can still generate weak advertising revenue when visitors come from low-value advertising markets or when the content has little commercial intent.
366
367Advertising also creates a trade-off between monetization and user experience because additional placements can increase visual clutter and page weight.
368
369# Affiliate Revenue
370
371Affiliate monetization works best when a page sits close to a purchasing decision.
372
373Examples include:
374
375- product comparisons;
376- software comparisons;
377- hosting recommendations;
378- equipment guides;
379- business-service directories.
380
381The economically important values are not raw traffic alone but:
382
383`Visitors × outbound-click rate × merchant conversion rate × commission`
384
385A smaller high-intent website can therefore be more valuable than a larger general-information site.
386
387Actual commission rates and attribution windows should be checked against each affiliate program rather than assumed across the industry.
388
389# Subscription and Premium Features
390
391Subscriptions can reduce dependence on advertising but require a reason for users to pay repeatedly.
392
393Web products commonly place payment around:
394
395- premium tools;
396- additional data;
397- advanced search;
398- saved workflows;
399- team features;
400- higher usage limits;
401- removal of advertising;
402- professional features.
403
404This changes the important metric from page views toward paying conversion, churn and revenue per customer.
405
406# Wiki and Community Monetization
407
408Wiki and user-generated-content sites have additional monetization options because contributors can continuously expand the site's searchable content.
409
410[Fandom](/wiki/fandom) is an example of a for-profit Wiki platform whose business includes advertising and commercial partnerships.
411
412Other knowledge/community projects may instead use donations, memberships, subscriptions or combinations of these models.
413
414The existence of a large Wiki does not establish that a new Wiki can reproduce its economics. Community size, search distribution, moderation cost and accumulated content are major differences.
415
416# Search Traffic as an Asset
417
418A content-heavy website can accumulate pages that independently receive search impressions.
419
420For example:
421
422```text
423/wiki/topic-a
424/wiki/topic-b
425/wiki/topic-c
426...
427```
428
429Each page becomes another potential search entry point.
430
431This makes structured Wiki, directory and database models different from a small fixed marketing website: adding useful pages expands the site's searchable surface area.
432
433However, creating URLs alone does not create search traffic. Google explicitly states that sitemap submission does not guarantee indexing, and indexing itself does not guarantee that a page will be served prominently for a query.
434
435# Costs
436
437The first version of a website can be unusually cheap because many infrastructure components have free tiers.
438
439Costs tend to appear as the service grows.
440
441## Fixed or low-volume costs
442
443Common early expenses include:
444
445- domain registration and renewal;
446- VPS or hosting;
447- backup storage;
448- transactional email;
449- premium SaaS tools.
450
451## Usage-based costs
452
453Costs that can grow with activity include:
454
455- compute;
456- bandwidth;
457- database capacity;
458- object storage;
459- email volume;
460- AI/API calls;
461- monitoring/log retention;
462- payment processing.
463
464## Human costs
465
466For community and Wiki sites, infrastructure may eventually be cheaper than:
467
468- moderation;
469- spam handling;
470- abuse prevention;
471- copyright requests;
472- user support;
473- content verification.
474
475These costs are easy to omit from an initial hosting calculation.
476
477# Practical Problems After Launch
478
479## DNS and SSL mismatch
480
481A site may work on one hostname but fail on another.
482
483Apex and `www` records, certificates, redirects, reverse-proxy configuration and application base URLs should describe the same production setup.
484
485## OAuth works locally but fails in production
486
487Localhost and the production domain are different OAuth environments.
488
489Production origins and callback URLs need to be configured correctly.
490
491## Google crawls but does not index
492
493Server logs or Search Console may show Googlebot requests while individual pages remain outside the index.
494
495This is possible because crawling and indexing are separate stages.
496
497## Analytics and Search Console disagree
498
499This is expected because they measure different systems.
500
501Analytics measures website usage; Search Console measures Google Search visibility and search-originating activity.
502
503## Origin works but CDN configuration fails
504
505When a proxy/CDN sits between users and the origin:
506
507`User → CDN → Origin`
508
509either connection can fail.
510
511An origin TLS problem can therefore produce an error even though the application process itself is running.
512
513# Requirements
514
515A basic public website should have:
516
517- a publicly reachable host;
518- a domain or provider URL;
519- valid HTTPS for normal production use;
520- working DNS;
521- a deployment process;
522- backups for data that cannot be recreated.
523
524A website seeking Google Search traffic should additionally ensure that:
525
526- Googlebot is not blocked;
527- indexable pages return HTTP `200`;
528- important pages contain indexable content;
529- internal links are crawlable;
530- canonical URLs are intentional;
531- important URLs are discoverable.
532
533A website with accounts must additionally maintain application-level sessions, authorization and account data even when an external identity provider handles authentication.
534
535# Risks / Things to Know
536
537## Search traffic can take time to appear
538
539Google states that crawling can take several days to several weeks after a request, and neither a crawl request nor a sitemap guarantees indexing.
540
541A newly launched content business should therefore not treat immediate organic search traffic as guaranteed distribution.
542
543## Free infrastructure does not mean zero operating cost
544
545A project may launch using free analytics, CDN, SSL, frameworks and database software but later incur hosting, storage, email, API and moderation expenses.
546
547## Self-hosting transfers responsibility
548
549Self-hosting can reduce hosting bills but makes power, internet connectivity, hardware, firewall configuration, updates and recovery the operator's responsibility.
550
551## Authentication adds policy and account-management work
552
553External login removes the need to directly authenticate passwords but does not remove the need for application sessions, permissions, account deletion and privacy handling.
554
555## A working website is not necessarily a discoverable website
556
557A page can load correctly for users worldwide and still receive no meaningful Google traffic. Public availability, crawlability, indexing and ranking are separate conditions.
558
559# Sources
560
561- [Google Search Central — How Google Search Works](https://developers.google.com/search/docs/fundamentals/how-search-works)
562- [Google Search Central — Crawling and Indexing FAQ](https://developers.google.com/search/help/crawling-index-faq)
563- [Google Search Central — Ask Google to Recrawl Your URLs](https://developers.google.com/search/docs/crawling-indexing/ask-google-to-recrawl)
564- [Google Search Central — Sitemaps Overview](https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview)
565- [Google Search Central — Build and Submit a Sitemap](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)
566- [Google Search Console Help — About Search Console](https://support.google.com/webmasters/answer/9128668)
567- [Google Analytics](https://marketingplatform.google.com/about/analytics/)
568- [Google Analytics Terms of Service](https://marketingplatform.google.com/about/analytics/terms/us/)
569- [Google Identity Services — Overview](https://developers.google.com/identity/gsi/web/guides/overview)
570- [Google Identity Services — Setup](https://developers.google.com/identity/gsi/web/guides/get-google-api-clientid)
571- [Cloudflare — Plans](https://www.cloudflare.com/plans/)
572- [Cloudflare — Free Plan](https://www.cloudflare.com/plans/free/)