PHPを使って、ページにアクセスしたときの状況によって表示の仕方を変えることができますよね。

 掲示板などで記事は別のファイルにしておいて、アクセスしたときのその段階での記事を読み込んで表示させるとか。

 でも、こういうのってSEO的にはどうなんでしょう?

 うろ覚えですが、動的なページより静的なページの方が有利と聞いたことがあるんですが、いまいち動的・静的もよく分かっておりません。
 ページとして動的がダメなのか、URLが動的だとダメなのかとか。

 掲示板の例をもう一度出しますと、書き込んだときにHTMLファイルとしてはき出して置いた方が有利なのか?
 それともPHPファイルのままで、アクセスしたときに記事を読みこんで表示させたとしても影響は全くないのか?

 アクセスのたびに読み込むと表示スピードが若干遅くなるでしょうから、そういうのが影響してるだけで、軽いページならどちらでも良い?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

httpでの通信では


・PHPを実行したときの出力

・先に作っておいたHTMLファイル
とを区別する方法はありません。

何度アクセスしても同じHTMLを出力するPHP

単独でのHTMLファイル

アクセスの度に変化するようPHPでの出力

数秒毎にHTMLファイルを直接書き換える

拡張子が.htmlでPHPが実行されている

拡張子が.phpだけどPHPは実行しない

アクセスの度に計算に時間がかかるPHP

サーバーの回線が細くて時間がかかるHTML

など、外部からは判断できません。
    • good
    • 0
この回答へのお礼

 お礼が遅くなり申し訳ありません。

 動的が不利になるというのはURLの場合であって、ファイルの中では結果さえ同じなら関係ないようですね。

 ありがとうございました。

お礼日時:2014/10/09 11:57

PHPに限らず、サーバサイド系システム全般に言えることですが、



・何も考えずに実装すれば、静的HTMLのほうがはるかにSEO的にみて良い
・正しく最適化すれば、SEO的には静的HTMLよりはるかに強力

ということです。
「ぐるなび」「カカクコム」「Amazon」など、世界の大手情報提供Webサービスサイトは、商品名や店舗名で真っ先に検索エンジンにインデックスされています。
手作業で「最適化」されたサイトの及ぶところではありませんよね。

Ajaxコンテンツを検索エンジン(Google)にクロール・インデックスさせる方法
ttp://www.suzukikenichi.com/blog/how-to-make-crawlable-and-indexable-ajax-content/

こういう手法を駆使しています。

この回答への補足

 ご紹介いただいた記事を拝見いたしましたが、これって動的URLについてのお話ですよね。

 例えば動的URLではなく、abc.htmlというファイルがあるとして、直接、abc.htmlの中へPHPを書き込んで記事を呼び出す場合と、別のPHPファイルでabc.htmlを作り出してサーバーへ置いておく場合はどうでしょう?

 URLとしては、どちらも「http://○○.net/abc.html」。

 abc.html内のPHPで動的に記事を呼び出すのと、別のPHPファイルで静的なabc.htmlを作って上書きするのとでは、やっぱり後者の方が良いのでしょうか?

補足日時:2014/08/30 21:08
    • good
    • 0
この回答へのお礼

 ご回答ありがとうございます。

 Amazonなどはどうやってるのか不思議でしたが、そういう仕組みでしたか。

 ワシは個人サイトやブログを作ろうと思ってるだけなので、Ajaxという技術とは縁がなさそうで残念です(^_^;

お礼日時:2014/08/30 21:02

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qhtaccessで静的→動的処理、動的→静的301

例えば・・・

以下の処理(【1】と【2】)を.htaccess内で処理したいです。

【1】

http://example.com/1.html



http://example.com/kkk.cgi?mode=main&cno=1

------------------

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9]+)\.html$ kkk.cgi?mode=main&cno=$1 [L]

------------------

上記で変換は出来るのですが、これだと静的URLと動的URLで「同じコンテンツが表示(重複ページ扱い=コピーページ扱い)」されます。

やりたいことは、CGIにアクセスすると「301リダイレクトで静的ページを表示する」という仕様にしたいと考えております。尚、パラメータ無しの直接アクセス(kkk.cgi)は、同フォルダのindex.htmlに301リダイレクトできれば最高です。


【2】

http://example.com/kkk.cgi?mode=main&cno=1

↓301リダイレクト

http://example.com/1.html

------------------

RewriteCond %{QUERY_STRING} ^mode=main&cno=(\d+)$
RewriteRule ^kkk\.cgi$ %1\.html? [R=301,L]

------------------

しかし【1】と【2】の処理を同時に行うとループとなります。phpなどを一切使わず、.htaccessの記述だけでこの問題をクリアできる方、何卒ご指導お願いいたします。

例えば・・・

以下の処理(【1】と【2】)を.htaccess内で処理したいです。

【1】

http://example.com/1.html



http://example.com/kkk.cgi?mode=main&cno=1

------------------

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9]+)\.html$ kkk.cgi?mode=main&cno=$1 [L]

------------------

上記で変換は出来るのですが、これだと静的URLと動的URLで「同じコンテンツが表示(重複ページ扱い=コピーページ扱い)」されます。

やりたいことは、CGIにアクセスすると「301リダイレクト...続きを読む

Aベストアンサー

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9]+)\.html$ kkk.cgi?mode=main&cno=$1 [L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^mode=main&cno=(\d+)$
RewriteRule ^kkk\.cgi$ %1\.html? [R=301,L]

で、どうでしょうか?リライトでcgiに来たのでない場合だけリダイレクト。

Qmod_rewriteで動的ページを静的に変更

PHPのカテゴリで同じ質問をしているのですが、3日目になっても、回答がいただけないので、同じ質問をさせていただきます。

動的ページを静的なページにしようとして、mod_rewriteの勉強をはじめようとしているのですが、疑問が出てきたので、確認させてください。
「何を当たり前のことを言ってるんだ。」と思われるかもしれませんが、教えて下さい。

htaccessからmod_rewriteを用いて、
(1)sampl.php?mod=1&id=3 を見かけ上、(2)sample/mod_1/id_3.html のようにすることは、mod_rewriteでできるということですが、
サイト全体を静的に見せようとしたら、プログラム側の呼出し(サイト内のリンク)を、(1)の形式から(2)の形式に全て変更しないといけないのでしょうか?

htaccessだけをいじれば、静的にできると思い込んでいたのですが、
プログラムを変更しないといけないとなると、覚悟が必要なもので。。。

Aベストアンサー

rewriteを囲ってるディレクティブの有効範囲の問題なんじゃ?

Q静的ページでファイル取得時刻を動的に出力するには?

お忙しい所すいません。。。どなたかご教授ください。。。

静的ページの拡張子(.html)のはずなのに、ファイル取得時刻を表示するページを解読中なのですが、どのような言語を利用して行っているのか、どうしてもわかりません。そのソースですが、

<HTML>
<HEAD>
<META name=VI60_defaultClientScript content=JavaScript>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=x-sjis">
<META http-equiv="pragma" content="no-store">
<META http-equiv="pragma" content="no-cache">
<TITLE>ファイル取得時刻を表示</TITLE>
<STYLE TYPE="text/css">

</STYLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
~ボタンを操作するjavascript~
</SCRIPT>
</HEAD>
<BODY bgcolor="#FEF9DE" text="#000000" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0" onload="selfRefresh()" scroll="auto">

~他の箇所のhtmlタグは省略~

******問題の箇所*******************************************
<DIV id='TIM'>
<TABLE BORDER='0' CELLSPACING="0" width="100" BGCOLOR="#CCCCCC"><TR><TD id='L12'>○月△日 **:**現在</TD></TR></TABLE>
</DIV>
****ここの時刻が20分置きくらいに更新されています***********

~他の箇所のhtmlタグは省略~

</BODY>
</HTML>

これがブラウザ上では「○○.html」ファイルと表示されています。このページに飛ぶ元のリンク先も「○○.html」とブラウザ上で表示されるファイル名になってます。

PHPなら
date("Y/n/d H:i", filemtime($ファイルまでのディレクトリ));
とか使って、ファイル取得時間を表示させられるでしょうが、Firefox3.5.3の「ページの情報→ヘッダ」で確認しても、Mineタイプはtext/htmlになっているのでPHPとかの可能性は無いのかな(自信はありませんが)と思いますし、.htaとかの可能性も無さそうだし。。。
使用しているjavascriptも見ているページ情報の制御にしか使ってなさそうだし。。。

色々ググッてみて「XOOPSの静的HTML吐き出し」というのを見たのですが、「Simplified URLs」で吐き出したものがhtmlファイルになるのかという所までは判らず。。。

使っているサーバーはApacheです。

私のプログラムの理解度はほんの少しPHP5.2を使っている程度です。フレームワークとかは少し試した程度です。

どのような言語を使えば静的ページ(.html)で、ファイル取得時刻を表示するページを作成できるのが(またはクライアントがサイトにレスポンスするたびに吐き出したhtmlを返すような形でも)、どなたかご教授ください。。。

よろしくお願い致します。。。

お忙しい所すいません。。。どなたかご教授ください。。。

静的ページの拡張子(.html)のはずなのに、ファイル取得時刻を表示するページを解読中なのですが、どのような言語を利用して行っているのか、どうしてもわかりません。そのソースですが、

<HTML>
<HEAD>
<META name=VI60_defaultClientScript content=JavaScript>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=x-sjis">
<META http-equiv="pragma" content="no-store">
<META http-equiv="pragma" content="no-cache">
<TI...続きを読む

Aベストアンサー

SSIのIncludeではないですか?

Q動的型付けと動的ページについて:

動的ページと動的型付けについて質問なのですが、

動的ページ(アクセスのたびにプログラムで作られるページ。
HPの掲示板やカウンター機能)について、
これは動的型付け言語でつくられるから動的ページと呼ぶのでしょうか? 
それとも動的ページと動的型付けは関係のないものなのでしょうか?

一応WIKIPEDIAで動的型付けについて調べて、
動的型付けとは、“実行時に合致するデータが渡されると期待する、
または合致するデータであるかを判定し、
必要なら適切な変換を施したり別の機能に委譲するような立場”
ということをボヤーっと理解した程度です。(パソコンの知識はありません。)

Aベストアンサー

関係ないと思う。Java(静的型付け)で毎回出力されていても
動的ページだと思うし

Q静的/動的リンクライブラリについて

Pythonのctypesを使っていてふと気になったので質問させていただきます。

Cと少々Java、程度の経験しかなかった私にとって、ctypesによって「Cのデータ型を利用できる」「dllをロードして、エクスポートされている関数を使用できる」というのは衝撃でした。
しかし、考えてみれば、仕組みとして理解できなくもない・・・かな?と現在は思っています。

ただ気になったのは、
 ・どうして静的リンクライブラリ(.lib)の方は対応してないの?
ということです。

[質問1]これは原理的に不可能なのでしょうか、それともctypesやPythonの仕様としてできないだけなのでしょうか。
(おそらくは「原理的に不可能」なのだろう、と個人的には思っておりますが・・・。)

以下は私の中の解釈ですが、
・マシン語として実行可能な形式になっているdllは、実行時のリンクの機構さえ整っていれば別にC言語でなくともロードや中身のコードを利用することはできる。
・また、Cのデータ型についても、要は型のバイト数やフォーマット(つまり内部的な扱われ方)をPythonインタプリタが押さえていれば良い話であるから、PythonでCの型を使用することは原理的に可能。

さて、
[質問2]それではlibはどうか。
libもコンパイル済みのものであるなら、Python(またはC以外の言語)からlib内のコードを利用することはできるのではないか?

どちらかのみの回答でも結構です。
また、解釈の誤りについてのご指摘や、リンクライブラリの仕組みを解説したページを教えてくださると助かります。
よろしくお願いします。

Pythonのctypesを使っていてふと気になったので質問させていただきます。

Cと少々Java、程度の経験しかなかった私にとって、ctypesによって「Cのデータ型を利用できる」「dllをロードして、エクスポートされている関数を使用できる」というのは衝撃でした。
しかし、考えてみれば、仕組みとして理解できなくもない・・・かな?と現在は思っています。

ただ気になったのは、
 ・どうして静的リンクライブラリ(.lib)の方は対応してないの?
ということです。

[質問1]これは原理的に不可能なのでしょうか、それ...続きを読む

Aベストアンサー

動的ライブラリは本質的に実行可能プログラムです。一部参照が未解決の場合がありますが、それらはローダで解決できるようになっています。Windows DLLの場合、C形式(cdecl)やC++形式(stdcall)といったエントリポイント形式が決まっているので、メモリにロードしてエントリポイントを適切に呼び出せば使えます。
静的ライブラリは機械語プログラムの断片に過ぎません。変数や関数の参照解決ができていませんので、そのままでは実行できず、リンカと呼ばれる開発ツールによって実行可能プログラムに変換しないと使えません。Python実行環境はリンカを内蔵していないので静的ライブラリを使うことはできません。なお、一般的に静的ライブラリの構造は開発ツールにより異なるので、開発ツールごとに個別のリンカが必要です。
# 例えばVisual C++(.lib)とCygwin gcc(.a)では違う


人気Q&Aランキング

おすすめ情報