Amazonなどで検索結果の画面がGoogleに表示されているのをよく見かけます。
動的にプログラムで生成されたページだと思うのですが、
このような動的にプログラムで生成されたページをSEO対策できるものなのでしょうか?
私のSEOに対する知識が浅いものしかなく、
SEOといえばHTMLファイルにしておかないといけないと思っていました。
PHPをつかった動的ページでSEO対策はできるのでしょうか?

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

A 回答 (5件)

動的・静的かというだけのことであればSEOに特に影響はありません。


ですので拡張子はどちらでもかまいません。
しかし、動的にサイトを構築する場合は、仕様の面で色々注意しなければならないことがあります。
SEOでの質問ということは自然検索からのアクセスを重視したサイトをお考えということですよね。
その場合の注意点として、動的なページ生成でよく使われるもので、大きく以下の3つに分類できます。
1. ajax
2. post送信
3. get送信
1と2はSEOを前提としたサイトやページには非常に相性が悪いです。
その他、動的なサイトを構築する上での注意について、以下のサイトか参考になります。
紹介するurlは重複コンテンツについてまとまっているものですが、重複というだけでもこれだけ注意する項目があります。
http://web-tan.forum.impressrd.jp/e/2012/02/13/1 …
制作会社にサイト制作を依頼する場合、依頼する側もある程度知識がないと、ページ遷移か全てajaxで、全くインデックスされずアクセスがないなど大変なことになるケースもめずらしくないので注意しましょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。今回のBAとさせていただきました。トップページをphp拡張子にしているのですが、トップページがリスティングされずに、2階層目のhtmlが表示されてしまっていてこまっています。また質問内容をかえてあらためて質問させていだだきます。

お礼日時:2014/11/24 12:38

動的ページにすることで、同じページ内で違った情報表示ができるようにするのであれば、滞在時間は増加します。


滞在時間が多いほど評価は上がります。
しかし、DBをつけて、反応の遅いものになっている場合は、途中で参照を切られる危険性がありますから一概には言えません。

動きはCSSのほうに逃がして、本体のHTMLのほうはスタティックにしておくほうが、検索エンジンには認識がしやすいです。

とはいえ、みなさん病気のようにSEOということを気にされますけど、SEOなんてないものだ、と思うほうがいい結果になりますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。了解いたしました。工夫してみます。また質問内容をかえてあらためて質問させていだだきます。

お礼日時:2014/11/24 12:37

昔はダメとか言っている人がいました。

今は関係ないと思いますね。URLが意味不明になりやすいことが根拠だったように思います。URLは浅くて短くて意味あるものが有利ですが、その評価の配分比率はきわめて小さいと推測されますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。また質問内容をかえてあらためて質問させていだだきます。

お礼日時:2014/11/24 12:36

そのHTMLがどうして作られたか、拡張子がなんであるかは一切関係ない。


どうせHTTPサーバーからは、
Content-type: text/html
としか言って来ない。

内容の充実と、その適切なマークアップ
    • good
    • 0
この回答へのお礼

ありがとうございます。トップページをphp拡張子にしているのですが、トップページがリスティングされずに、2階層目のhtmlが表示されてしまっていてこまっています。また質問内容をかえてあらためて質問させていだだきます。

お礼日時:2014/11/24 12:35

静的ページか動的ページかは問題ではありません。


動的に生成したページも結果としてはHTMLが返されていることには変わりありません。
コンテンツの中身が重要なのです。
    • good
    • 0
この回答へのお礼

ありがとうございます。同じHTML出力でもphp拡張子にするとなかなかリスティングされずに、こまっていました。

お礼日時:2014/11/24 12:34

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qforeachで回った数を表示したい

単純な質問ですみません。
====
//getTestlistは別ファイルで定義済み。
<?
$testlist=getTestlist();
foreach($testlist as $test){
?>


<? } ?>
====
例えば↑こんなふうにforeachで$testlistが存在するだけ回したとします。
そのときに何回まわったか?($testが何件あったか?)だけを表示したいのですが、そんなことってできますか?
表示したい位置は<? } ?>の外側にと考えています。
あさってな質問でしたらすみません。
phpVer 4.3

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

Aベストアンサー

<?
$testlist=getTestlist();
$n=0;
foreach($testlist as $test){
$n++;
?>
<?}?>

<?=$n?>回
とかでよいかと思います。

途中でbreakなどが無ければ
<? echo count($testlist) ?>でも良いかも知れません。

Qtableのcellpadding="0" cellspacing="0"をCSSで

tableのcellpadding="0" cellspacing="0"をCSSで設定する方法を検索したところ、
border-collapse:collapse;
border-spacing:0;
というアドバイスが記載されていました。
実際に使ってみたのですが、
どうしてもセル余白とセル間隔が発生してしまいます。
どうしたらよいですか。

Aベストアンサー

border-spacingはborder-collapseの値がseparateのときしか有効にならないそうです。
http://www.htmq.com/style/border-spacing.shtml

サンプルが
http://www.htmq.com/style/border-collapse.shtml
にあるので参考にしてください。

# それにしてもこんなプロパティがあるとは知らなかった…

参考URL:http://www.htmq.com/style/border-spacing.shtml

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">

Qディレクションって何ですか??

求人広告を見ていていまして、職種;広報
”パンフレット等の印刷物のディレクションを担当して頂きます。”
っとありました。ディレクションとはどういう仕事なのでしょうか??

”広告代理店や広報、宣伝部署の経験者歓迎”とも書かれていたのですが、未経験では難しい仕事ですか??

そういう関係に全く知識のない私がわかるような御説明を宜しくお願いします。

Aベストアンサー

映画ですと、映画監督を「ディレクター」と言いますね。
シナリオを元に、俳優さんに演技をつけたり、カメラワークや美術セットのセッティングを指示したり、撮り終えたフィルムを編集して映像にあった音楽やナレーションを吹き込む…といった、制作に関する全ての方向性を決め、制作スタッフの総指揮を執る人のことを指します。

ご質問にある「印刷物のディレクション」も、ジャンルは違いますが、考え方は映画監督の仕事内容と同じです。
まず、パンフレットなど印刷物の制作目的を的確に捉えた上でその内容をまとめあげ、エディターやライター、デザイナーに制作を発注、方向付けした通りに進行しているかをチェックしながら、印刷物として完成するまでを、責任を持って一元管理する「パンフレット制作に於ける総指揮官」の役目ではないでしょうか。

>”広告代理店や広報、宣伝部署の経験者歓迎”とも書かれていたのですが、未経験では難しい仕事ですか??

その会社が、どの程度のスキルを求めているかにも依りますが、恐らく未経験では難しいと思います。とにかく、覚えなければならないことが山ほどあるので…
この手の求人では、パンフレットやカタログの制作関連の仕事など、印刷物の制作経験があることが条件となる場合が多いようです。

映画ですと、映画監督を「ディレクター」と言いますね。
シナリオを元に、俳優さんに演技をつけたり、カメラワークや美術セットのセッティングを指示したり、撮り終えたフィルムを編集して映像にあった音楽やナレーションを吹き込む…といった、制作に関する全ての方向性を決め、制作スタッフの総指揮を執る人のことを指します。

ご質問にある「印刷物のディレクション」も、ジャンルは違いますが、考え方は映画監督の仕事内容と同じです。
まず、パンフレットなど印刷物の制作目的を的確に捉えた上でその内容...続きを読む

QPHPファイルの中身が見られることはありませんか?

かなり初歩的な質問かもしれませんが、宜しくお願いします。

普通、PHPファイルの中身はブラウザでは表示されないと思うのですが、
それは絶対に表示されないものなのでしょうか?
それとも何らかの方法で見られてしまうことがあるのでしょうか?

パスワードなどの重要な情報を変数に格納しなければならない場合、
そのファイルを.htaccessで制御したりした方が良いのでしょうか…?

Aベストアンサー

再び No2です

>あとこれは.incではなく.phpでも良いのでしょうか?
>.inc拡張子にしてから.htaccessで設定する特別な理由があるのでしょうか?
>ただ単に.phpに.htaccess設定する必要は無いからということでしょうか?

御幣を与えてしまったようですね
.htaccessで設定するのは、.incファイルをFTPする前です
(まぁ、すぐに設定すれば後でもかまわないんですけど、タイミング的に、あなたが設定するまでの一瞬の間にアクセスされない保証はどこにもありませんからね・・・)


.phpの拡張子は、外部から閲覧するためには、外部からのアクセスを許可しなくてはいけないので、設定するためには、ファイル名+.php をいちいち .htaccess に記述しなくてはいけなくなり、面倒ですし間違いも起こりえます


ですから、一番最初にFTP作業前に .htaccessに .incの拡張子すべてをアクセス拒否 と記述しておけば、その後は.htaccessを書き直す必要ないですからね

たとえば、.htaccessに
<Files ~ "\.(inc|txt|dat)$">
deny from all
</Files>
と記述しておけば、.inc .txt .dat の拡張子を持つファイルすべてを、外部から(ブラウザ経由で)直接閲覧不可にできます
この中に.phpを入れてしまったら、ブラウザ経由で.phpをアクセスできなくなってしまうので、誰もあなたのサイトを見ることができなくなります


.inc
外部から直接アクセスしてほしくない、設定ファイルやクラスのみを記述したPHPファイルを.incにしておいてアクセスを禁止する
例)
common.inc
class.inc
config.inc


.php
外部からアクセスしてほしいphpファイルに対して付ける
例)
index.php 等

再び No2です

>あとこれは.incではなく.phpでも良いのでしょうか?
>.inc拡張子にしてから.htaccessで設定する特別な理由があるのでしょうか?
>ただ単に.phpに.htaccess設定する必要は無いからということでしょうか?

御幣を与えてしまったようですね
.htaccessで設定するのは、.incファイルをFTPする前です
(まぁ、すぐに設定すれば後でもかまわないんですけど、タイミング的に、あなたが設定するまでの一瞬の間にアクセスされない保証はどこにもありませんからね・・・)


.phpの拡張子は、...続きを読む

Q文字列から、特定の文字を削除したい

アンケートで入力された値を受け取り、メールで送信しているのですが、受け取った値から、特定の文字列を削除することは可能でしょうか?

例えば電話番号の入力の場合、
03-xxxx-xxxx →03xxxxxxxx
077-xxx-xxxx →077xxxxxxx
のように、-(ハイフン)が入力されていたら、-を削除した文字列に置換してメール送信したいのです。
入力する時に、3つのテキストエリアに分けるのは諸事情でできないので、特定の文字を削除する関数か処理方法がありましたら、教えていただきたいです。
よろしくお願いします。

Aベストアンサー

str_replace
http://itbtech.itboost.co.jp/man/php_man/function.str-replace.html

<?php
$orig_telno = "03-xxxx-xxxx";

$telno = str_replace("-", "", $orig_telno);
echo $telno;

03xxxxxxxx

“PHP 文字列” あたりをキーワードに検索すれば
そんなに難しいものでもないような。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

Qリストの左余白の削除方法

<li>リストを作成した再に表示されてしまう、左余白部分を削除して、画面左に詰めたいのですが、上手く出来ません。
どなたかご教授頂けませんでしょうか?

=>CSS記述<=
ul li {
list-style: none;
margin: 0px;
padding: 0px;}

=>HTML記述<=
<ul>
<li><a href="#">サンプル</a></li>
<li><a href="#">サンプル</a></li>
<li><a href="#">サンプル</a></li>
<li><a href="#">サンプル</a></li>
</ul>

Aベストアンサー

ul li {

の箇所を

ul {

にするだけ

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います

QonClickで関数呼出し後に、結果に応じてsubmitを実行する方法

JavaScriptで、
function func() {
 if (a==0) {
  alert("処理しない");
  return false;
 }
 return true;
}
と、a=0ならfalseを返し、それ以外ならtrueを返す関数を定義しています。

そして、FORMタグで
<FORM NAME="FormName" ACTION="next.html">
<INPUT TYPE="button" VALUE="next" NAME="button1" onClick="return func();submit();">
</FORM>
と記述しています。
要は、ボタンを押下した際にfunc関数がtrueを返せば、next.htmlに
遷移させたいのですが、上記記述では、遷移しません・・・
onClick部分にonClick="return func(),submit();"と記述した場合、
func関数の実行結果がtrueでもfalseでも遷移してしまいます。
そこで、なんとなくonClick="return func()&&submit();"と記述してみたところ、
func関数がtrueの時のみうまく遷移するようになりました。

これは偶然そう動作しているのでしょうか、それとも上記は正しい記述方法なのでしょうか?
正しい記述方法ならいいのですが、上記以外に正式な記述方法があれば
教えていただけないでしょうか?

※TYPE="submit"にすればいいとは思うのですが、buttonで実現したいと
考えております。

JavaScriptで、
function func() {
 if (a==0) {
  alert("処理しない");
  return false;
 }
 return true;
}
と、a=0ならfalseを返し、それ以外ならtrueを返す関数を定義しています。

そして、FORMタグで
<FORM NAME="FormName" ACTION="next.html">
<INPUT TYPE="button" VALUE="next" NAME="button1" onClick="return func();submit();">
</FORM>
と記述しています。
要は、ボタンを押下した際にfunc関数がtrueを返せば、next.htmlに
遷移させたいのですが、上記記述では、遷移しませ...続きを読む

Aベストアンサー

3つのパターンをみる限り、理由は以下の通りと思います。
1.セミコロン(;)で区切った場合、
この場合、「return func();」と「submit();」とは別の文です。returnはその時点の値を戻して、それ以降の動作を打ち切ってしまいます。よって、onClickイベントはfuncメソッドの戻り値(true/false関係なく)を戻して、そこで終了、それ以降のsubmitは実行しないとなります。

2.カンマ(,)で区切った場合、
この場合、「return func(),submit();」が1つの文となります。この「,」は、左右の式を評価して、右式を結果とする演算子です。よって、funcメソッド、submitメソッド両方を評価するため、funcメソッドの戻り値に関係なく、submitされます。

3.&&で区切った場合、
論理演算子「&&」は、左右ともにtrue(0以外)の場合のみtrueとする演算子です。また、2項論理演算子は左式から評価し、左式だけで全体の結果がわかる場合、右式を評価しません。よって、funcメソッドがfalseを戻した場合、その時点でsubmitを評価しなくても演算結果は必ずfalseとなるのでそこで打ち切られ、trueを戻した場合、submitを評価しないと演算結果を得られないため、遷移したわけです。「&&」を「||(論理和)」に変更すると逆の結果得たと思います。

さて、では3の「&&」が正しいかと言われたら、文法上は正しいです。ただし、他人がみてわかるとは思えません。
そこで、以下の記述はいかがでしょう。読んでみてソースを理解できますか。


<FORM NAME="FormName" ACTION="next.html">
<INPUT TYPE="button" VALUE="next" NAME="button1" onClick="func()">
</FORM>

(中略)

// funcの定義
function func() {
 if (a==0) {
  alert("処理しない");
  return ;
 }
 document.FormName.submit();
}

要は、ボタンを押されたら、funcを呼び出せ。
funcでは、aが0ならば、そこで終了しろ。
そうでなければ、documentオブジェクト内のFormNameと言う名前のオブジェクトのsubmitメソッドを呼べ。
です。

3つのパターンをみる限り、理由は以下の通りと思います。
1.セミコロン(;)で区切った場合、
この場合、「return func();」と「submit();」とは別の文です。returnはその時点の値を戻して、それ以降の動作を打ち切ってしまいます。よって、onClickイベントはfuncメソッドの戻り値(true/false関係なく)を戻して、そこで終了、それ以降のsubmitは実行しないとなります。

2.カンマ(,)で区切った場合、
この場合、「return func(),submit();」が1つの文となります。この「,」は、左右の式を評価して、右...続きを読む


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報